solowalker27 / homebridge-onkyo

Homebridge module for Onkyo Receivers
7 stars 5 forks source link

Merge back (ToddGreenfield & SoloWalker) projects into ToddGreenfield as looks like Todd is now actively maintaining original codebase (will cross post) #13

Closed taw123 closed 3 years ago

taw123 commented 4 years ago

Is your feature request related to a problem? Please describe. Thanks for all your work on this. I moved to SoloWalker's plugin given issue with the Todd Greenfield's plugin on my Onkyo and to gain support for Platform.

Looks like Todd is now actively mantaining his original plugin that was forks (though seems he implemented the Platform definition slightly differently).

Request to have all changes made in SoloWalker fork integrated into the mainline codebase this unifying the root. This will allow SoloWalker to continue if he wishes to in the future push out any updates and if not at least the work done will not be lost and those of us who have been using and testing it can switch over to Todd's plug in with minimal disruption (at the moment since he published privately I unfortunately still see Todd's plugin as my installed plugin with he most recent update now as an available update via HomeBridgeUI/NPM.

Thanks both for all the great work! And as a former Apple Engineer please let me know if there is anything I can do to help.

Regards, Tom

solowalker27 commented 4 years ago

My fork was merged up into Todd’s project (see https://github.com/ToddGreenfield/homebridge-onkyo/pull/21 and others) but it’s since been modified heavily by cbrandlehner. Todd isn’t maintaining it anymore; he gave myself and cbrandlehner more or less ownership since we were contributing. With all the changes that have been made since my work, plenty of my code is no longer compatible. But cbrandlehner made those changes on purpose. I’m happy to take PRs here if there’s anything you think could be improved, but I’m not likely to do anything major beyond simple maintenance as it’s working fine for my personal use. If there’s anything wrong with anything upstream, you’d want to file bugs or PRs there.

taw123 commented 4 years ago

Thanks for getting back to me.

I saw cbrandlehner push(s) to the project. I don’t have a particular allegiance to either your fork or changes he is making just though since you never npm published I was assuming you were just working your own private fork (that I tacked onto). I also assumed you got it far enough that you had what you wanted working so I wasn’t sure how much much time you would be spending on continuing to move the code base forward so I was considering bitting the bullet and switching back to the root/ToddGreinfeild version with the unfortunate understanding I would need to revise my current Hombridge config as you each defined the platform slightly differently.

If you are going to keep moving the platform forward I will stay, otherwise since I need to revise my Docker instance and a few other things related to it seems like the right time to make the move.

Thanks again for all you have done! —Tom

             applewebdata://99F9CEF6-EABD-4C5A-BFCC-1A17DAD12C1B

Tom Weyer
Global Product Management (415) 823-7672 | weyer@me.com mailto:weyer@me.com    http://www.linkedin.com/in/tweyer http://twitter.com/bikedude

On Mar 9, 2020, at 4:15 PM, solowalker27 <notifications@github.com mailto:notifications@github.com> wrote:

My fork was merged up into Todd’s project (see ToddGreenfield#21 https://github.com/ToddGreenfield/homebridge-onkyo/pull/21 and others) but it’s since been modified heavily by cbrandlehner. Todd isn’t maintaining it anymore; he gave myself and cbrandlehner more or less ownership since we were contributing. With all the changes that have been made since my work, plenty of my code is no longer compatible. But cbrandlehner made those changes on purpose. I’m happy to take PRs here if there’s anything you think could be improved, but I’m not likely to do anything major beyond simple maintenance as it’s working fine for my personal use. If there’s anything wrong with anything upstream, you’d want to file bugs or PRs there.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/solowalker27/homebridge-onkyo/issues/13?email_source=notifications&email_token=ACQZAXB2UGEFDVOREEPXBD3RGWBD3A5CNFSM4LEO3M2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOJM4RQ#issuecomment-596823622, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACQZAXCEEACSCJF55KH6ZT3RGWBD3ANCNFSM4LEO3M2A.

http://schema.org/ https://github.com/solowalker27/homebridge-onkyo/issues/13?email_source=notifications\u0026email_token=ACQZAXB2UGEFDVOREEPXBD3RGWBD3A5CNFSM4LEO3M2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOJM4RQ#issuecomment-596823622 https://github.com/solowalker27/homebridge-onkyo/issues/13?email_source=notifications\u0026email_token=ACQZAXB2UGEFDVOREEPXBD3RGWBD3A5CNFSM4LEO3M2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOJM4RQ#issuecomment-596823622 https://github.com/

cbrandlehner commented 4 years ago

@solowalker27 @taw123 Based on this discussion I merged the update into the code of Todd. So I do not earn credits for the major change on the plugin. Testing it I found some problems so I tried to fix these. However, some problems remain. Probably caused by my changes. I am more than happy to merge back and be part of a team instead of ending up alone. @taw123 are you willing to spend some time to give me, hopefully us, advise on how to proceed?

solowalker27 commented 4 years ago

I guess the first question is what were you hoping to achieve with your changes? Just to get a config schema for homebridge-config-ui-x support? I can handle that. What other problems did you have? Works fine for me.

cbrandlehner commented 4 years ago

@solowalker27 changing the config so support homebridge-config-ui-x was the only intended change. As I did so I found some minor issues, like the code not being relilient for missing or incorrect configuration, causing a crash of the plugin and subsequently of homebridge. So I wrote some small changes to log an error and quit. I also introduced a linter to check the JSON files and XO to check the JavaScript using NPM TEST. But basically I did nothing to change features of the plugin.

solowalker27 commented 4 years ago

Okay, well, this is a valid schema that accurately describes what I currently accept and expect. Unfortunately, https://hamidihamza.com/ajsf/ doesn't seem to like the inputs section. The bootstrap frameworks show the title and description but don't allow an input field even though I have a default object defined. Might have to try to see if I can get a custom form object for it that will accept it. I don't know why it wouldn't work, though, because it's valid schema.


{
    "pluginAlias": "Onkyo",
    "pluginType": "platform",
    "singular": true,
    "headerDisplay": "Onkyo-like receiver as a HomeKit TV.",
    "footerDisplay": "https://github.com/solowalker27/homebridge-onkyo",
    "schema": {
        "type": "object",
        "required": [
            "receivers"
        ],
        "properties": {
            "receivers": {
                "type": "array",
                "title": "Receivers",
                "descrpition": "List of receivers and/or receiver Zones to add to HomeKit.",
                "items": {
                    "type": "object",
                    "title": "Receiver or Receiver Zone",
                    "description": "Receiver or receiver Zone to add to HomeKit.",
                    "required": [
                        "name",
                        "ip_address",
                        "model"
                    ],
                    "properties": {
                        "name": {
                            "type": "string",
                            "title": "Device Name",
                            "default": "Receiver",
                            "description": "Name of the receiver as it will appear in HomeKit."
                        },
                        "model": {
                            "type": "string",
                            "title": "Receiver Model Number",
                            "default": "TX-NR515",
                            "description": "Receiver model number (or closest to it).",
                            "oneOf": [
                                {"enum": [
                                    "/515AE(Ether)",
                                    "/515AE",
                                    "/616AE(Ether)",
                                    "/616AE",
                                    "/818AE",
                                    "DHC-40.1",
                                    "DHC-40.2",
                                    "DHC-60.5",
                                    "DHC-60.7",
                                    "DHC-80.1",
                                    "DHC-80.2",
                                    "DHC-80.3",
                                    "DHC-80.6",
                                    "DHC-9.9",
                                    "DRC-R1",
                                    "DRX-2",
                                    "DRX-2.1",
                                    "DRX-3",
                                    "DRX-3.1",
                                    "DRX-4",
                                    "DRX-4.1",
                                    "DRX-5",
                                    "DRX-5.1",
                                    "DRX-7",
                                    "DRX-R1",
                                    "DTC-7",
                                    "DTC-9.1",
                                    "DTC-9.4",
                                    "DTC-9.8",
                                    "DTM-7",
                                    "DTR-10.5",
                                    "DTR-20.1",
                                    "DTR-20.2",
                                    "DTR-20.3",
                                    "DTR-20.4",
                                    "DTR-20.7",
                                    "DTR-30.1",
                                    "DTR-30.2",
                                    "DTR-30.3",
                                    "DTR-30.4",
                                    "DTR-30.5",
                                    "DTR-30.6",
                                    "DTR-30.7",
                                    "DTR-4.5",
                                    "DTR-4.6",
                                    "DTR-4.9",
                                    "DTR-40.1",
                                    "DTR-40.2",
                                    "DTR-40.3",
                                    "DTR-40.4",
                                    "DTR-40.5",
                                    "DTR-40.6",
                                    "DTR-40.7",
                                    "DTR-5.2",
                                    "DTR-5.3",
                                    "DTR-5.4",
                                    "DTR-5.5",
                                    "DTR-5.6",
                                    "DTR-5.8",
                                    "DTR-5.9",
                                    "DTR-50.1",
                                    "DTR-50.2",
                                    "DTR-50.3",
                                    "DTR-50.4",
                                    "DTR-50.5",
                                    "DTR-50.6",
                                    "DTR-50.7",
                                    "DTR-6.2",
                                    "DTR-6.3",
                                    "DTR-6.4",
                                    "DTR-6.5",
                                    "DTR-6.6",
                                    "DTR-6.8",
                                    "DTR-6.9",
                                    "DTR-60.5",
                                    "DTR-60.6",
                                    "DTR-60.7",
                                    "DTR-7.1",
                                    "DTR-7.2",
                                    "DTR-7.3",
                                    "DTR-7.4",
                                    "DTR-7.6",
                                    "DTR-7.7",
                                    "DTR-7.8",
                                    "DTR-7.9",
                                    "DTR-70.1",
                                    "DTR-70.2",
                                    "DTR-70.3",
                                    "DTR-70.4",
                                    "DTR-70.6",
                                    "DTR-8.2",
                                    "DTR-8.3",
                                    "DTR-8.4",
                                    "DTR-8.8",
                                    "DTR-8.9",
                                    "DTR-80.1",
                                    "DTR-80.2",
                                    "DTR-80.3",
                                    "DTR-9.1",
                                    "DTR-9.9",
                                    "DTX-5.8",
                                    "DTX-5.9",
                                    "DTX-7",
                                    "DTX-7.7",
                                    "DTX-7.8",
                                    "DTX-8.8",
                                    "DTX-8.9",
                                    "DTX-9.9",
                                    "ETX-NA1000",
                                    "HT-R693(Ether)",
                                    "HT-R993(Ether)",
                                    "HT-RC550(Ether)",
                                    "HT-RC560(Ether)",
                                    "HT-R693",
                                    "HT-R993",
                                    "HT-RC550",
                                    "HT-RC560",
                                    "HT-RC660",
                                    "NR-365(Ether)",
                                    "NR-365",
                                    "PR-RZ5100",
                                    "PR-SC5507",
                                    "PR-SC5508",
                                    "PR-SC5509",
                                    "PR-SC5530",
                                    "PR-SC885",
                                    "PR-SC886",
                                    "RDC-7",
                                    "RDC-7(Ver2.0)",
                                    "RDC-7.1",
                                    "TX-8270(Ether)",
                                    "TX-8270",
                                    "TX-DS787",
                                    "TX-DS797",
                                    "TX-DS898",
                                    "TX-DS989",
                                    "TX-NA900",
                                    "TX-NA905",
                                    "TX-NA906",
                                    "TX-NA906X",
                                    "TX-NR1000",
                                    "TX-NR1007",
                                    "TX-NR1008",
                                    "TX-NR1009",
                                    "TX-NR1010",
                                    "TX-NR1030",
                                    "TX-NR3007",
                                    "TX-NR3008",
                                    "TX-NR3009",
                                    "TX-NR3010",
                                    "TX-NR3030",
                                    "TX-NR414(Ether)",
                                    "TX-NR474(Ether)",
                                    "TX-NR414",
                                    "TX-NR474",
                                    "TX-NR5000",
                                    "TX-NR5007",
                                    "TX-NR5008",
                                    "TX-NR5009",
                                    "TX-NR5010",
                                    "TX-NR509(Ether)",
                                    "TX-NR509",
                                    "TX-NR515",
                                    "TX-NR525",
                                    "TX-NR535(Ether)",
                                    "TX-NR545(Ether)",
                                    "TX-NR555(Ether)",
                                    "TX-NR575(Ether)",
                                    "TX-NR575DAB(Ether)",
                                    "TX-NR575E(Ether)",
                                    "TX-NR579(Ether)",
                                    "TX-NR609(Ether)",
                                    "TX-NR535",
                                    "TX-NR545",
                                    "TX-NR555",
                                    "TX-NR575",
                                    "TX-NR575DAB",
                                    "TX-NR575E",
                                    "TX-NR579",
                                    "TX-NR609",
                                    "TX-NR616",
                                    "TX-NR626",
                                    "TX-NR636",
                                    "TX-NR646(Ether)",
                                    "TX-NR656(Ether)",
                                    "TX-NR676(Ether)",
                                    "TX-NR676E(Ether)",
                                    "TX-NR646",
                                    "TX-NR656",
                                    "TX-NR676",
                                    "TX-NR676E",
                                    "TX-NR708",
                                    "TX-NR709",
                                    "TX-NR717(Ether)",
                                    "TX-NR727(Ether)",
                                    "TX-NR737(Ether)",
                                    "TX-NR747(Ether)",
                                    "TX-NR717",
                                    "TX-NR727",
                                    "TX-NR737",
                                    "TX-NR747",
                                    "TX-NR757",
                                    "TX-NR777",
                                    "TX-NR807",
                                    "TX-NR808",
                                    "TX-NR809",
                                    "TX-NR818",
                                    "TX-NR828(Ether)",
                                    "TX-NR838(Ether)",
                                    "TX-NR828",
                                    "TX-NR838",
                                    "TX-NR900",
                                    "TX-NR901",
                                    "TX-NR905",
                                    "TX-NR906",
                                    "TX-NR929",
                                    "TX-RZ1100",
                                    "TX-RZ3100",
                                    "TX-RZ610",
                                    "TX-RZ620",
                                    "TX-RZ710",
                                    "TX-RZ720",
                                    "TX-RZ800",
                                    "TX-RZ810",
                                    "TX-RZ820",
                                    "TX-RZ900",
                                    "TX-SA706",
                                    "TX-SA706X",
                                    "TX-SA805",
                                    "TX-SA806",
                                    "TX-SA806X",
                                    "TX-SA875",
                                    "TX-SA876",
                                    "TX-SR702",
                                    "TX-SR703",
                                    "TX-SR705",
                                    "TX-SR706",
                                    "TX-SR707",
                                    "TX-SR803",
                                    "TX-SR804",
                                    "TX-SR805",
                                    "TX-SR806",
                                    "TX-SR875",
                                    "TX-SR876"
                                    ]
                                }
                            ]
                        },
                        "ip_address": {
                            "type": "string",
                            "title": "IP Address of Receiver",
                            "default": "10.0.0.46",
                            "description": "IP address of receiver. NOTE: Reserved address strongly recommended."
                        },
                        "inputs": {
                            "type": "object",
                            "title": "Inputs",
                            "description": "Input according to the receiver and how it will be listed in HomeKit.",
                            "propertyNames": {
                                "enum": [
                                    "07",
                                    "08",
                                    "09",
                                    "am",
                                    "aux1",
                                    "aux2",
                                    "bd",
                                    "cbl",
                                    "cd",
                                    "dlna",
                                    "dvd",
                                    "dvr",
                                    "fm",
                                    "game",
                                    "hidden1",
                                    "hidden2",
                                    "hidden3",
                                    "internet-radio",
                                    "iradio-favorite",
                                    "multi-ch",
                                    "music-server",
                                    "net",
                                    "network",
                                    "off",
                                    "p4s",
                                    "pc",
                                    "phono",
                                    "sat",
                                    "sirius",
                                    "source",
                                    "tape",
                                    "tape-1",
                                    "tape2",
                                    "tuner",
                                    "tv",
                                    "universal-port",
                                    "usb",
                                    "vcr",
                                    "video1",
                                    "video2",
                                    "video3",
                                    "video4",
                                    "video5",
                                    "video6",
                                    "video7",
                                    "xm"
                                ]
                            },
                            "patternProperties": {
                                "" : {
                                    "type": "string",
                                    "minLength": 1
                                }
                            },
                            "default": {
                                "dvd": "Blu-ray",
                                "video2": "Switch",
                                "video3": "Wii U",
                                "video6": "Apple TV",
                                "video4": "AUX",
                                "cd": "TV/CD"
                            }
                        },
                        "default_input": {
                            "type": "string",
                            "title": "Default Input",
                            "description": "Always set to this input when powering on receiver.",
                            "oneOf": [
                                {
                                    "enum": [
                                        "07",
                                        "08",
                                        "09",
                                        "am",
                                        "aux1",
                                        "aux2",
                                        "bd",
                                        "cbl",
                                        "cd",
                                        "dlna",
                                        "dvd",
                                        "dvr",
                                        "fm",
                                        "game",
                                        "hidden1",
                                        "hidden2",
                                        "hidden3",
                                        "internet-radio",
                                        "iradio-favorite",
                                        "multi-ch",
                                        "music-server",
                                        "net",
                                        "network",
                                        "off",
                                        "p4s",
                                        "pc",
                                        "phono",
                                        "sat",
                                        "sirius",
                                        "source",
                                        "tape",
                                        "tape-1",
                                        "tape2",
                                        "tuner",
                                        "tv",
                                        "universal-port",
                                        "usb",
                                        "vcr",
                                        "video1",
                                        "video2",
                                        "video3",
                                        "video4",
                                        "video5",
                                        "video6",
                                        "video7",
                                        "xm"
                                    ]
                                }
                            ]
                        },
                        "filter_inputs": {
                            "type": "boolean",
                            "title": "Filter Inputs",
                            "description": "Whether or not to limit exposed inputs to the provided mapping. If true, no other inputs will be exposed.",
                            "default": true
                        },
                        "default_volume": {
                            "type": "integer",
                            "title": "Default Volume",
                            "description": "Always set volume to this number when powering on receiver."
                        },
                        "max_volume": {
                            "type": "integer",
                            "title": "Max Volume",
                            "description": "Limit volume of receiver to this number when controlling in HomeKit.",
                            "default": 30
                        },
                        "volume_dimmer": {
                            "type": "boolean",
                            "title": "Show Volume as a Dimmer",
                            "description": "Whether or not to show receiver volume as a linked light dimmer. Convenient for quick volume changes but Siri thinks it's a light source.",
                            "default": false
                        },
                        "map_volume_100": {
                            "type": "integer",
                            "title": "Default Volume",
                            "description": "Always set volume to this number when powering on receiver."
                        },
                        "poll_status_interval": {
                            "type": "string",
                            "title": "Poll Status Interval",
                            "description": "Interval in milliseconds at which to poll for status of receiver."
                        },
                        "zone": {
                            "type": "string",
                            "title": "Zone",
                            "description": "Which receier Zone to control.",
                            "oneOf": [
                                {
                                    "enum": ["main", "zone2", "zone3", "zone4"]
                                }
                            ],
                            "default": "main"
                        },
                        "additionalProperties": false
                    }
                }
            }
        },
        "additionalProperties": false
    }
}