Merge pull request #32 from ericblade/main

fixup README issues
This commit is contained in:
Trammell Hudson
2023-12-04 20:00:26 +01:00
committed by GitHub

474
README.md
View File

@@ -16,19 +16,18 @@ and should prevent most any random attacker on your network from being able to
## Setup ## Setup
``` ```python3
pip3 -r requirements.txt pip3 install -r requirements.txt
``` ```
Install the Python dependencies; the `sslpsk` one is a little weird Install the Python dependencies; the `sslpsk` one is a little weird
and we might need to revisit it later. and we might need to revisit it later.
## Authenticate to the cloud servers ## Authenticate to the cloud servers
![laptop in a clothes washer with a display DoorState:Closed](images/doorclose.jpg) ![laptop in a clothes washer with a display DoorState:Closed](images/doorclose.jpg)
``` ```bash
hc-login $USERNAME $PASSWORD > config.json hc-login $USERNAME $PASSWORD > config.json
``` ```
@@ -44,10 +43,9 @@ the resulting configuration JSON file *should* be sufficient to
connect to the devices on your local network, assuming that connect to the devices on your local network, assuming that
your mDNS or DNS server resolves the names correctly. your mDNS or DNS server resolves the names correctly.
## Home Connect to MQTT ## Home Connect to MQTT
``` ```bash
hc2mqtt config.json hc2mqtt config.json
``` ```
@@ -71,89 +69,89 @@ library.
Example message published to `homeconnect/dishwasher`: Example message published to `homeconnect/dishwasher`:
``` ```json
{ {
"state": "Run", "state": "Run",
"door": "Closed", "door": "Closed",
"remaining": "2:49", "remaining": "2:49",
"power": true, "power": true,
"lowwaterpressure": false, "lowwaterpressure": false,
"aquastop": false, "aquastop": false,
"error": false, "error": false,
"remainingseconds": 10140 "remainingseconds": 10140
} }
``` ```
<details> <details>
<summary>Full state information</summary> <summary>Full state information</summary>
``` ```json
{ {
'AllowBackendConnection': False, 'AllowBackendConnection': False,
'BackendConnected': False, 'BackendConnected': False,
'RemoteControlLevel': 'ManualRemoteStart', 'RemoteControlLevel': 'ManualRemoteStart',
'SoftwareUpdateAvailable': 'Off', 'SoftwareUpdateAvailable': 'Off',
'ConfirmPermanentRemoteStart': 'Off', 'ConfirmPermanentRemoteStart': 'Off',
'ActiveProgram': 0, 'ActiveProgram': 0,
'SelectedProgram': 8192, 'SelectedProgram': 8192,
'RemoteControlStartAllowed': False, 'RemoteControlStartAllowed': False,
'520': '2022-02-21T16:48:54', '520': '2022-02-21T16:48:54',
'RemoteControlActive': True, 'RemoteControlActive': True,
'AquaStopOccured': 'Off', 'AquaStopOccured': 'Off',
'DoorState': 'Open', 'DoorState': 'Open',
'PowerState': 'Off', 'PowerState': 'Off',
'ProgramFinished': 'Off', 'ProgramFinished': 'Off',
'ProgramProgress': 100, 'ProgramProgress': 100,
'LowWaterPressure': 'Off', 'LowWaterPressure': 'Off',
'RemainingProgramTime': 0, 'RemainingProgramTime': 0,
'ProgramAborted': 'Off', 'ProgramAborted': 'Off',
'547': False, '547': False,
'RemainingProgramTimeIsEstimated': True, 'RemainingProgramTimeIsEstimated': True,
'OperationState': 'Inactive', 'OperationState': 'Inactive',
'StartInRelative': 0, 'StartInRelative': 0,
'EnergyForecast': 82, 'EnergyForecast': 82,
'WaterForecast': 70, 'WaterForecast': 70,
'ConnectLocalWiFi': 'Off', 'ConnectLocalWiFi': 'Off',
'SoftwareUpdateTransactionID': 0, 'SoftwareUpdateTransactionID': 0,
'SoftwareDownloadAvailable': 'Off', 'SoftwareDownloadAvailable': 'Off',
'SoftwareUpdateSuccessful': 'Off', 'SoftwareUpdateSuccessful': 'Off',
'ProgramPhase': 'Drying', 'ProgramPhase': 'Drying',
'SilenceOnDemandRemainingTime': 0, 'SilenceOnDemandRemainingTime': 0,
'EcoDryActive': False, 'EcoDryActive': False,
'RinseAid': 'R04', 'RinseAid': 'R04',
'SensitivityTurbidity': 'Standard', 'SensitivityTurbidity': 'Standard',
'ExtraDry': False, 'ExtraDry': False,
'HotWater': 'ColdWater', 'HotWater': 'ColdWater',
'TimeLight': 'On', 'TimeLight': 'On',
'EcoAsDefault': 'LastProgram', 'EcoAsDefault': 'LastProgram',
'SoundLevelSignal': 'Off', 'SoundLevelSignal': 'Off',
'SoundLevelKey': 'Medium', 'SoundLevelKey': 'Medium',
'WaterHardness': 'H04', 'WaterHardness': 'H04',
'DryingAssistantAllPrograms': 'AllPrograms', 'DryingAssistantAllPrograms': 'AllPrograms',
'SilenceOnDemandDefaultTime': 1800, 'SilenceOnDemandDefaultTime': 1800,
'SpeedOnDemand': False, 'SpeedOnDemand': False,
'InternalError': 'Off', 'InternalError': 'Off',
'CheckFilterSystem': 'Off', 'CheckFilterSystem': 'Off',
'DrainingNotPossible': 'Off', 'DrainingNotPossible': 'Off',
'DrainPumpBlocked': 'Off', 'DrainPumpBlocked': 'Off',
'WaterheaterCalcified': 'Off', 'WaterheaterCalcified': 'Off',
'LowVoltage': 'Off', 'LowVoltage': 'Off',
'SaltLack': 'Off', 'SaltLack': 'Off',
'RinseAidLack': 'Off', 'RinseAidLack': 'Off',
'SaltNearlyEmpty': 'Off', 'SaltNearlyEmpty': 'Off',
'RinseAidNearlyEmpty': 'Off', 'RinseAidNearlyEmpty': 'Off',
'MachineCareReminder': 'Off', 'MachineCareReminder': 'Off',
'5121': False, '5121': False,
'HalfLoad': False, 'HalfLoad': False,
'IntensivZone': False, 'IntensivZone': False,
'VarioSpeedPlus': False, 'VarioSpeedPlus': False,
'5131': False, '5131': False,
'5134': True, '5134': True,
'SilenceOnDemand': False 'SilenceOnDemand': False
} }
``` ```
</details>
</details>
### Clothes washer ### Clothes washer
@@ -167,86 +165,86 @@ binary data over the websocket (type 0x82).
Example message published to `homeconnect/washer`: Example message published to `homeconnect/washer`:
``` ```json
{ {
"state": "Ready", "state": "Ready",
"door": "Closed", "door": "Closed",
"remaining": "3:48", "remaining": "3:48",
"power": true, "power": true,
"lowwaterpressure": false, "lowwaterpressure": false,
"aquastop": false, "aquastop": false,
"error": false, "error": false,
"remainingseconds": 13680 "remainingseconds": 13680
} }
``` ```
<details> <details>
<summary>Full state information</summary> <summary>Full state information</summary>
``` ```json
{ {
'BackendConnected': False, 'BackendConnected': False,
'CustomerEnergyManagerPaired': False, 'CustomerEnergyManagerPaired': False,
'CustomerServiceConnectionAllowed': False, 'CustomerServiceConnectionAllowed': False,
'DoorState': 'Open', 'DoorState': 'Open',
'FlexStart': 'Disabled', 'FlexStart': 'Disabled',
'LocalControlActive': False, 'LocalControlActive': False,
'OperationState': 'Ready', 'OperationState': 'Ready',
'RemoteControlActive': True, 'RemoteControlActive': True,
'RemoteControlStartAllowed': False, 'RemoteControlStartAllowed': False,
'WiFiSignalStrength': -50, 'WiFiSignalStrength': -50,
'LoadInformation': 0, 'LoadInformation': 0,
'AquaStopOccured': 'Off', 'AquaStopOccured': 'Off',
'CustomerServiceRequest': 'Off', 'CustomerServiceRequest': 'Off',
'LowWaterPressure': 'Off', 'LowWaterPressure': 'Off',
'ProgramFinished': 'Off', 'ProgramFinished': 'Off',
'SoftwareUpdateAvailable': 'Off', 'SoftwareUpdateAvailable': 'Off',
'WaterLevelTooHigh': 'Off', 'WaterLevelTooHigh': 'Off',
'DoorNotLockable': 'Off', 'DoorNotLockable': 'Off',
'DoorNotUnlockable': 'Off', 'DoorNotUnlockable': 'Off',
'DoorOpen': 'Off', 'DoorOpen': 'Off',
'FatalErrorOccured': 'Off', 'FatalErrorOccured': 'Off',
'FoamDetection': 'Off', 'FoamDetection': 'Off',
'DrumCleanReminder': 'Off', 'DrumCleanReminder': 'Off',
'PumpError': 'Off', 'PumpError': 'Off',
'ReleaseRinseHoldPending': 'Off', 'ReleaseRinseHoldPending': 'Off',
'EnergyForecast': 20, 'EnergyForecast': 20,
'EstimatedTotalProgramTime': 13680, 'EstimatedTotalProgramTime': 13680,
'FinishInRelative': 13680, 'FinishInRelative': 13680,
'FlexFinishInRelative': 0, 'FlexFinishInRelative': 0,
'ProgramProgress': 0, 'ProgramProgress': 0,
'RemainingProgramTime': 13680, 'RemainingProgramTime': 13680,
'RemainingProgramTimeIsEstimated': True, 'RemainingProgramTimeIsEstimated': True,
'WaterForecast': 40, 'WaterForecast': 40,
'LoadRecommendation': 10000, 'LoadRecommendation': 10000,
'ProcessPhase': 4, 'ProcessPhase': 4,
'ReferToProgram': 0, 'ReferToProgram': 0,
'LessIroning': False, 'LessIroning': False,
'Prewash': False, 'Prewash': False,
'RinseHold': False, 'RinseHold': False,
'RinsePlus': 0, 'RinsePlus': 0,
'SilentWash': False, 'SilentWash': False,
'Soak': False, 'Soak': False,
'SpeedPerfect': False, 'SpeedPerfect': False,
'SpinSpeed': 160, 'SpinSpeed': 160,
'Stains': 0, 'Stains': 0,
'Temperature': 254, 'Temperature': 254,
'WaterPlus': False, 'WaterPlus': False,
'AllowBackendConnection': False, 'AllowBackendConnection': False,
'AllowEnergyManagement': False, 'AllowEnergyManagement': False,
'AllowFlexStart': False, 'AllowFlexStart': False,
'ChildLock': False, 'ChildLock': False,
'Language': 'En', 'Language': 'En',
'PowerState': 'On', 'PowerState': 'On',
'EndSignalVolume': 'Medium', 'EndSignalVolume': 'Medium',
'KeySignalVolume': 'Loud', 'KeySignalVolume': 'Loud',
'EnableDrumCleanReminder': True, 'EnableDrumCleanReminder': True,
'ActiveProgram': 0, 'ActiveProgram': 0,
'SelectedProgram': 28718 'SelectedProgram': 28718
} }
``` ```
</details>
</details>
### Coffee Machine ### Coffee Machine
@@ -257,101 +255,101 @@ The coffee machine needs a better mapping to MQTT messages.
<details> <details>
<summary>Full state information</summary> <summary>Full state information</summary>
``` ```json
{ {
'LastSelectedBeverage': 8217, 'LastSelectedBeverage': 8217,
'LocalControlActive': False, 'LocalControlActive': False,
'PowerSupplyError': 'Off', 'PowerSupplyError': 'Off',
'DripTrayNotInserted': 'Off', 'DripTrayNotInserted': 'Off',
'DripTrayFull': 'Off', 'DripTrayFull': 'Off',
'WaterFilterShouldBeChanged': 'Off', 'WaterFilterShouldBeChanged': 'Off',
'WaterTankEmpty': 'Off', 'WaterTankEmpty': 'Off',
'WaterTankNearlyEmpty': 'Off', 'WaterTankNearlyEmpty': 'Off',
'BrewingUnitIsMissing': 'Off', 'BrewingUnitIsMissing': 'Off',
'SelectedProgram': 0, 'SelectedProgram': 0,
'MacchiatoPause': '5Sec', 'MacchiatoPause': '5Sec',
'ActiveProgram': 0, 'ActiveProgram': 0,
'BeverageCountdownWaterfilter': 48, 'BeverageCountdownWaterfilter': 48,
'BeverageCountdownCalcNClean': 153, 'BeverageCountdownCalcNClean': 153,
'RemoteControlStartAllowed': True, 'RemoteControlStartAllowed': True,
'EmptyDripTray': 'Off', 'EmptyDripTray': 'Off',
'BeverageCountdownDescaling': 153, 'BeverageCountdownDescaling': 153,
'EmptyDripTrayRemoveContainer': 'Off', 'EmptyDripTrayRemoveContainer': 'Off',
'BeverageCounterRistrettoEspresso': 177, 'BeverageCounterRistrettoEspresso': 177,
'AllowBackendConnection': True, 'AllowBackendConnection': True,
'BeverageCounterHotWater': 37351, 'BeverageCounterHotWater': 37351,
'RemindForMilkAfter': 'Off', 'RemindForMilkAfter': 'Off',
'BeverageCounterFrothyMilk': 22, 'BeverageCounterFrothyMilk': 22,
'BeverageCounterCoffeeAndMilk': 1077, 'BeverageCounterCoffeeAndMilk': 1077,
'CustomerServiceRequest': 'Off', 'CustomerServiceRequest': 'Off',
'4645': 0, '4645': 0,
'CoffeeMilkOrder': 'FirstCoffee', 'CoffeeMilkOrder': 'FirstCoffee',
'BackendConnected': True, 'BackendConnected': True,
'BeverageCounterCoffee': 21, 'BeverageCounterCoffee': 21,
'Enjoy': 'Off', 'Enjoy': 'Off',
'UserMode': 'Barista', 'UserMode': 'Barista',
'PlaceEmptyGlassUnderOutlet': 'Off', 'PlaceEmptyGlassUnderOutlet': 'Off',
'WaterTankNotInserted': 'Off', 'WaterTankNotInserted': 'Off',
'PlaylistRunning': False, 'PlaylistRunning': False,
'BeverageCounterPowderCoffee': 9, 'BeverageCounterPowderCoffee': 9,
'DemoModeActive': False, 'DemoModeActive': False,
'CleanBrewingUnit': 'Off', 'CleanBrewingUnit': 'Off',
'WaterHardness': 'Medium', 'WaterHardness': 'Medium',
'CloseDoor': 'Off', 'CloseDoor': 'Off',
'EmptyMilkTank': 'Off', 'EmptyMilkTank': 'Off',
'SpecialRinsing': 'Off', 'SpecialRinsing': 'Off',
'AllowConsumerInsights': False, 'AllowConsumerInsights': False,
'SwitchOffAfter': '01Hours15Minutes', 'SwitchOffAfter': '01Hours15Minutes',
'4681': 0, '4681': 0,
'LastSelectedCoffeeWorldBeverage': 20514, 'LastSelectedCoffeeWorldBeverage': 20514,
'BrightnessDisplay': 7, 'BrightnessDisplay': 7,
'CleanMilkTank': 'Off', 'CleanMilkTank': 'Off',
'NotEnoughWaterForThisKindOfBeverage': 'Off', 'NotEnoughWaterForThisKindOfBeverage': 'Off',
'ChildLock': False, 'ChildLock': False,
'4666': 0, '4666': 0,
'Language': 'De', 'Language': 'De',
'MilkContainerConnected': 'Off', 'MilkContainerConnected': 'Off',
'SoftwareUpdateAvailable': 'Off', 'SoftwareUpdateAvailable': 'Off',
'LeaveProfilesAutomatically': True, 'LeaveProfilesAutomatically': True,
'RemoveWaterFilter': 'Off', 'RemoveWaterFilter': 'Off',
'OperationState': 'Inactive', 'OperationState': 'Inactive',
'BeverageCounterHotMilk': 9, 'BeverageCounterHotMilk': 9,
'4362': 0, '4362': 0,
'MilkTubeRemoved': 'Off', 'MilkTubeRemoved': 'Off',
'DeviceIsToCold4C': 'Off', 'DeviceIsToCold4C': 'Off',
'SystemHasRunDry': 'Off', 'SystemHasRunDry': 'Off',
'DeviceShouldBeDescaled': 'Off', 'DeviceShouldBeDescaled': 'Off',
'PowerState': 'Standby', 'PowerState': 'Standby',
'DeviceShouldBeCleaned': 'Off', 'DeviceShouldBeCleaned': 'Off',
'DeviceShouldBeCalcNCleaned': 'Off', 'DeviceShouldBeCalcNCleaned': 'Off',
'BeanContainerEmpty': 'Off', 'BeanContainerEmpty': 'Off',
'MilkStillOK': 'Off', 'MilkStillOK': 'Off',
'CoffeeOutletMissing': 'Off', 'CoffeeOutletMissing': 'Off',
'MilkReminder': 'Off', 'MilkReminder': 'Off',
'RefillEmptyWaterTank': 'Off', 'RefillEmptyWaterTank': 'Off',
'RefillEmptyBeanContainer': 'Off', 'RefillEmptyBeanContainer': 'Off',
'UnderOverVoltage': 'Off', 'UnderOverVoltage': 'Off',
'NotEnoughPomaceCapacityForThisKindOfBeverage': 'Off', 'NotEnoughPomaceCapacityForThisKindOfBeverage': 'Off',
'AdjustGrindSetting': 'Off', 'AdjustGrindSetting': 'Off',
'InsertWaterFilter': 'Off', 'InsertWaterFilter': 'Off',
'FillDescaler': 'Off', 'FillDescaler': 'Off',
'CleanFillWaterTank': 'Off', 'CleanFillWaterTank': 'Off',
'PlaceContainerUnderOutlet': 'Off', 'PlaceContainerUnderOutlet': 'Off',
'SwitchOffPower30sekBackOn': 'Off', 'SwitchOffPower30sekBackOn': 'Off',
'ThrowCleaningDiscInTheDrawer': 'Off', 'ThrowCleaningDiscInTheDrawer': 'Off',
'RemoveMilkContainer': 'Off', 'RemoveMilkContainer': 'Off',
'RemoveContainerUnderOutlet': 'Off', 'RemoveContainerUnderOutlet': 'Off',
'MilkContainerRemoved': 'Off', 'MilkContainerRemoved': 'Off',
'ServiceProgramFinished': 'Off', 'ServiceProgramFinished': 'Off',
'DeviceDescalingOverdue': 'Off', 'DeviceDescalingOverdue': 'Off',
'DeviceDescalingBlockage': 'Off', 'DeviceDescalingBlockage': 'Off',
'CustomerServiceConnectionAllowed': False, 'CustomerServiceConnectionAllowed': False,
'BeverageCountdownCleaning': 38, 'BeverageCountdownCleaning': 38,
'ProcessPhase': 'None' 'ProcessPhase': 'None'
} }
``` ```
</details>
</details>
## FRIDA tools ## FRIDA tools