Siemens Home Connect Hausgeräte

Begonnen von DasAndy, 19 November 2014, 14:31:46

Vorheriges Thema - Nächstes Thema

erwin

Deine Vermutung ist eindeutig richtig, heute Nacht wieder, siehe:
2016-11-21_03:46:15 HN678G4S6 Cooking.Oven.Status.CurrentCavityTemperature: 21 °C
2016-11-21_03:46:25 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 21 °C
2016-11-21_03:46:25 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 22 °C
2016-11-21_03:46:25 HN678G4S6 Cooking.Oven.Status.CurrentCavityTemperature: 22 °C
2016-11-21_03:46:35 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 21 °C
2016-11-21_03:46:45 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 22 °C
2016-11-21_03:47:06 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 21 °C
2016-11-21_03:47:16 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 22 °C
2016-11-21_03:47:16 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 21 °C
2016-11-21_03:47:46 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 22 °C
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Status.RemoteControlActive: true
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Status.DoorState: BSH.Common.EnumType.DoorState.Closed
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Status.OperationState: BSH.Common.EnumType.OperationState.Inactive
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Root.ActiveProgram: None
2016-11-21_06:45:37 CS658GRS6 Idle
2016-11-21_06:45:37 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 21 °C
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Status.RemoteControlStartAllowed: false
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Status.LocalControlActive: false
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Option.ProgramProgress: 0 %
2016-11-21_06:45:37 CS658GRS6 BSH.Common.Option.RemainingProgramTime: 0 seconds
2016-11-21_06:45:57 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 22 °C
2016-11-21_06:45:57 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 21 °C
2016-11-21_06:46:08 CS658GRS6 Cooking.Oven.Status.CurrentCavityTemperature: 22 °C

um 3:48 Internet weg, (zwangstrennung durch Provider)..um 6:45 hab ich ein set CS658GRS6 init gemacht!
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

swhome

@Erwin, ich hab einen Fix eingecheckt: wenn mehr als zwei Minuten keine Daten mehr kommen, wird die Verbindung neu aufgebaut.

@Alle: Ich habe soeben die "letzten" drei Betatester angemeldet. Damit sind zunächst mal alle Plätze vergeben.

Wie schaut's aus, wer ausser Erwin und Docfred hats schon am Laufen?
Im Einsatz: FHEM auf Raspberry Pi mit 350 devices, hauptsächlich Homematic Wired und HM-Heizungsregler, dazu diverse Eigenbauten für Fussbodenheizung und LED Beleuchtung. Und jetzt mit Alexa!

docfred

Hallo Stefan,
verstehe ich deine Äußerung richtig, dass bei mir über das api die CavityTemperature gar nicht geliefert wird?

Übernimmt dier Routine HomeConnect_Get($@) , HomeConnect_UpdateStatus oder HomeConnect_ReadEventChannel($) das Einlesen der Werte?

BOFH

#153
Soweit funzt es.

IdentifyAppliance Monitor Oven-Monitor Washer-Monitor ...

Das Advanced-Member muss ich noch freischalten.

Hab allerdings auch nur den "oven" ...

RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

swhome

Zitat von: docfred am 21 November 2016, 19:41:56
verstehe ich deine Äußerung richtig, dass bei mir über das api die CavityTemperature gar nicht geliefert wird?
Übernimmt dier Routine HomeConnect_Get($@) , HomeConnect_UpdateStatus oder HomeConnect_ReadEventChannel($) das Einlesen der Werte?

Ja, das wollte ich damit sagen. Die Status-Updates werden von HomeConnect_ReadEventChannel() gelesen. Da sollte die Temperatur normalerweise dabei sein.

Bekommst Du immer einen aktuellen / korrekten Wert wenn Du die init-Methode ausührst? Dann liegt der Fehler vielleicht im HC API und nicht im Ofen.
Im Einsatz: FHEM auf Raspberry Pi mit 350 devices, hauptsächlich Homematic Wired und HM-Heizungsregler, dazu diverse Eigenbauten für Fussbodenheizung und LED Beleuchtung. Und jetzt mit Alexa!

docfred

ZitatBekommst Du immer einen aktuellen / korrekten Wert wenn Du die init-Methode ausührst? Dann liegt der Fehler vielleicht im HC API und nicht im Ofen.
Ja, die Werte die init liefert sind korrekt.

docfred

2016.11.22 15:26:02 2: set command: init
2016.11.22 15:26:02 4: HNG6764S6 request: https://api.home-connect.com/api/homeappliances
2016.11.22 15:26:02 4: HNG6764S6: no token refresh needed
2016.11.22 15:26:02 4: HNG6764S6 response: {
  "data": {
    "homeappliances": [{
      "name": "Backofen",
      "brand": "BOSCH",
      "vib": "HNG6764S6",
      "connected": true,
      "type": "Oven",
      "enumber": "HNG6764S6/09",
      "haId": "BOSCH-HNG6764S6-68A40E0106DE"
    }]
  }
}
2016.11.22 15:26:02 2: HNG6764S6 defined as HomeConnect Oven BOSCH HNG6764S6
2016.11.22 15:26:02 4: HNG6764S6 request: https://api.home-connect.com/api/homeappliances/BOSCH-HNG6764S6-68A40E0106DE/status
2016.11.22 15:26:02 4: HNG6764S6: no token refresh needed
2016.11.22 15:26:04 4: HNG6764S6 response: {
  "data": {
    "status": [{
      "key": "BSH.Common.Status.DoorState",
      "value": "BSH.Common.EnumType.DoorState.Closed"
    }, {
      "key": "BSH.Common.Status.LocalControlActive",
      "value": false
    }, {
      "key": "BSH.Common.Status.RemoteControlStartAllowed",
      "value": true
    }, {
      "key": "BSH.Common.Status.RemoteControlActive",
      "value": true
    }, {
      "key": "BSH.Common.Status.OperationState",
      "value": "BSH.Common.EnumType.OperationState.Run"
    }, {
      "key": "Cooking.Oven.Status.CurrentCavityTemperature",
      "value": 202,
      "unit": "°C"
    }]
  }
}
2016.11.22 15:26:04 4: HNG6764S6 request: https://api.home-connect.com/api/homeappliances/BOSCH-HNG6764S6-68A40E0106DE/programs/active
2016.11.22 15:26:04 4: HNG6764S6: no token refresh needed
2016.11.22 15:26:04 4: HNG6764S6 response: {
  "data": {
    "key": "Cooking.Oven.Program.HeatingMode.HotAir",
    "options": [{
      "key": "Cooking.Oven.Option.SetpointTemperature",
      "value": 180,
      "unit": "°C"
    }, {
      "key": "Cooking.Oven.Option.FastPreHeat",
      "value": false
    }, {
      "key": "Cooking.Oven.Option.SteamAssistLevel",
      "value": "Cooking.Oven.EnumType.AddedSteam.Off"
    }, {
      "key": "BSH.Common.Option.ElapsedProgramTime",
      "value": 567,
      "unit": "seconds"
    }, {
      "key": "BSH.Common.Option.ProgramProgress",
      "value": 100,
      "unit": "%"
    }, {
      "key": "Cooking.Oven.Option.Level",
      "value": "Cooking.Oven.EnumType.Level.Level03"
    }, {
      "key": "Cooking.Oven.Option.MicrowavePower",
      "value": "Cooking.Oven.EnumType.MicrowavePower.90Watt"
    }]
  }
}
2016.11.22 15:26:14 5: HNG6764S6 received H
2016.11.22 15:26:52 3: ZWave get EG_Arbeitszimmer_Heizung battery
2016.11.22 15:26:52 3: get EG_Arbeitszimmer_Heizung battery : Scheduled for sending after WAKEUP
2016.11.22 15:26:52 3: ZWave get ZWave_THERMOSTAT_4 battery
2016.11.22 15:26:52 3: get ZWave_THERMOSTAT_4 battery : Scheduled for sending after WAKEUP
2016.11.22 15:26:52 3: ZWave get Verbrauch_Gas battery
2016.11.22 15:26:52 3: get Verbrauch_Gas battery : Scheduled for sending after WAKEUP
2016.11.22 15:26:52 3: ZWave get Verbrauch_Gas meter
2016.11.22 15:26:52 3: get Verbrauch_Gas meter : Scheduled for sending after WAKEUP
2016.11.22 15:26:52 3: AT_EG.Arbeitszimmer.Heizung: Scheduled for sending after WAKEUP
2016.11.22 15:27:05 5: HNG6764S6 received TTP/1.1 200 OK
Server: nginx/1.10.1
Date: Tue, 22 Nov 2016 14:27:09 GMT
Content-Type: text/event-stream
Connection: close
Vary: Accept-Encoding
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,OPTIONS,PUT,DELETE
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization,Content-Type,Accept

event:NOTIFY
data:{"items":[{"timestamp":1479824883,"handling":"none","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1479824883,"handling":"none","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1479824883,"handling":"none","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":623,"level":"hint"},{"timestamp":1479824883,"handling":"none","key":"BSH.Common.Option.ProgramProgress","unit":"%","value":100,"level":"hint"}]}
id:BOSCH-HNG6764S6-68A40E0106DE

e
2016.11.22 15:27:05 5: HNG6764S6 found data: {"items":[{"timestamp":1479824883,"handling":"none","key":"BSH.Common.Root.ActiveProgram","value":"Cooking.Oven.Program.HeatingMode.HotAir","level":"hint"},{"timestamp":1479824883,"handling":"none","key":"Cooking.Oven.Option.SetpointTemperature","unit":"°C","value":180,"level":"hint"},{"timestamp":1479824883,"handling":"none","key":"BSH.Common.Option.ElapsedProgramTime","unit":"seconds","value":623,"level":"hint"},{"timestamp":1479824883,"handling":"none","key":"BSH.Common.Option.ProgramProgress","unit":"%","value":100,"level":"hint"}]}

2016.11.22 15:27:05 4: BSH.Common.Root.ActiveProgram = Cooking.Oven.Program.HeatingMode.HotAir
2016.11.22 15:27:05 4: Cooking.Oven.Option.SetpointTemperature = 180 °C
2016.11.22 15:27:05 4: BSH.Common.Option.ElapsedProgramTime = 623 seconds
2016.11.22 15:27:05 4: BSH.Common.Option.ProgramProgress = 100 %
2016.11.22 15:27:15 5: HNG6764S6 received vent:KEEP-ALIVE
data:
id:BOSCH-HNG6764S6-68A40E0106DE

e


Woher kommen denn die "e" im Logfile?

swhome

Ja jetzt hast Du einen Punkt gefunden an dem mein Perl Verständnis an ein Ende gelangt ist..

Das e gehört zum nächsten Event:

...
e
2016.11.22 15:27:05 5: HNG6764S6 found data: {"items":...
2016.11.22 15:27:15 5: HNG6764S6 received vent:KEEP-ALIVE

Da steht nämlich dann nur noch "vent". Dieser Effekt ist mir ein Rätsel.
Im Einsatz: FHEM auf Raspberry Pi mit 350 devices, hauptsächlich Homematic Wired und HM-Heizungsregler, dazu diverse Eigenbauten für Fussbodenheizung und LED Beleuchtung. Und jetzt mit Alexa!

docfred

Meiner Meinung gehört es zum event davor.

swhome

Und hier?


2016.11.22 15:26:14 5: HNG6764S6 received H
2016.11.22 15:27:05 5: HNG6764S6 received TTP/1.1 200 OK

Im Einsatz: FHEM auf Raspberry Pi mit 350 devices, hauptsächlich Homematic Wired und HM-Heizungsregler, dazu diverse Eigenbauten für Fussbodenheizung und LED Beleuchtung. Und jetzt mit Alexa!

herrmannj

Kann ich helfen ?

Wenn ja, gib mir mal bitte (möglichst kompakt. :) die (technische) Frage und die relevanten Zeilen in Deinem modul

vg
joerg

docfred

Ich versuchs mal (bin nicht der Autor) :

Im Modul 48_HomeConnect.pm
gibt es in ab der Zeile 568 die sub-Routine:

HomeConnect_ReadEventChannel($)
Im Falle eines Events wird dieser zerlegt und entsprechende readings erzeugt

in Zeile 601 ist der Befehl
Log3 $hash->{NAME}, 5, "$hash->{NAME} received $inputbuf";

Und der liefert folgende Logeinträge:

2016.11.26 13:29:39 5: HNG6764S6 received H
2016.11.26 13:30:29 5: HNG6764S6 received TTP/1.1 200 OK
Server: nginx/1.10.1
Date: Sat, 26 Nov 2016 12:30:28 GMT
Content-Type: text/event-stream
Connection: close
Vary: Accept-Encoding
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,OPTIONS,PUT,DELETE
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization,Content-Type,Accept

e


2016.11.26 13:31:29 5: HNG6764S6 received vent:KEEP-ALIVE
data:
id:BOSCH-HNG6764S6-68A40E0106DE

e
2016.11.26 13:32:19 5: HNG6764S6 received vent:KEEP-ALIVE
data:
id:BOSCH-HNG6764S6-68A40E0106DE

e


Irgendwie läuft bei der Zerlegung was schief

Im ersten Beispiel wird zunächst nur ein "H" ausgegeneben, dann "TTP/1.1 200 OK"

Weiter unten und in den anderen Bsp. zwei "Returns" und das "e" welches eigentlich zu event gehört gefolgt von "vent:KEEP-ALIVE
data:
id:BOSCH-HNG6764S6-68A40E0106DE

e"

Ich kann zwar etwas programmieren, aber mit den Perl-HASHs blicke ich nicht völlig durch. gibt es denn eine einfache Routine um den gesamten (strukturierten) Inhalt eines Hashes zu Testzwecken in Logfile zu schreiben ohne dass man wissen muss, wie der Hash aufgebaut ist? Hab von Dumper gehört geht das in FHEM?




herrmannj

ja, das sind die Symptome. Ich hatte inständig gehofft mich nicht komplett in die quellen einlesen zu dürfen. btw; wo liegen die denn eigentlich. Ich habe den thread überflogen (mehr nicht) aber nix gefunden ? (was sicher an mir liegt...)

danke vg
joerg

erwin

Ok,
ich bin auch nicht der Autor...
sources liegen auf: https://github.com/sw-home/FHEM-HomeConnect
Was ich versucht habe:
Ändern von: 48_homeconnect.pm Zeile 594
        my $len = sysread($hash->{conn},$buf,1);
nach:
        my $len = sysread($hash->{conn},$buf,8000);

... damit sind die symptome weg (zerstückeln der resonses) aber:
ich kann nicht beurteilen, ob sich das auf die "responsivness" des ges. systems auswirkt
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

herrmannj

#164
oh ja Danke. Ich habe das jetzt nur überflogen würde aber den Block ab #615 als Kandidaten sehen.

Wenn meine Interpretation richtig ist wird dort der inputbuffer zerlegt. (?)

Kann das eine Lösung sein ?

#615 ff
while (($inputbuf =~ m/\r\n/) && ((my $line, $inputbuf) = split /\r\n/, $inputbuf, 2)) {
    # process one line
}


Den buffer bei sysread #594 würde ich auch auf mehrer kB stellen.
vg
joerg