Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Abruf von Luftfeuchtigkeitswerten für die Zimmer
#1
Hallo,

ich habe den Http-Link für den Abruf der Temperaturen gefunden, der auch gut funktioniert.

http://192.168.1.x/api/v1/var/roomtemps/...ssword=YYY

Kann mir vielleicht jemand sagen, wie ich die Luftfeuchtigkeitswerte der einzelnen Zimmer abrufen kann?

Danke & Gruß
Maniac2002
#2
Hi, also mit der Frage kann ich leider nichts genaues anfangen. Der Aufruf liefert dir doch die Werte. Wie willst du das verarbeiten? Es gibt keine einzelnen http Aufruf der dir nur die Luftfeuchtigkeit zurückgibt.
#3
Hallo,


zur Erklärung, ich versuche gerade alle Werte des MY-Gekko auszulesen und in den IO-Broker zu integrieren.
Erst einmal geht es nur um den Abruf und danach mache ich mich ans Steuern ran.
Sobald ich fertig bin stelle ich das hier zur Verfügung.



als Antwort auf den Aufruf bekomme ich folgende Werte:

{
"item0": {
"sumstate": {
"value": "21.5;21.12;0.00;8;1;0.12;0;"
}
},
"item1": {
"sumstate": {
"value": "21.20000076293945;21.04;0.00;8;1;0.04;0;"
}
},
"item2": {
"sumstate": {
"value": "21.39999961853027;21.41;2.22;8;1;0.41;0;"
}
},
"item3": {
"sumstate": {
"value": "19.70000076293945;20.07;24.27;8;1;-0.93;0;"
}
},
"item4": {
"sumstate": {
"value": "20.29999923706055;19.98;0.00;8;1;-1.02;0;"
}
},
"item5": {
"sumstate": {
"value": "19.79999923706055;19.98;20.46;8;1;-1.02;0;"
}
},
"item6": {
"sumstate": {
"value": "21;22.02;100.00;8;1;1.02;0;"
}
},
"item7": {
"sumstate": {
"value": "20.39999961853027;19.94;0.00;8;1;-1.06;0;"
}
}
}

welcher Wert ist denn die Luftfeuchtigkeit?
Die müßte so um 55% liegen.

Danke & Gruß
Maniac2002
#4
Je nachdem wie aktuell deine Firmware ist kannst du den Wert entweder über die Roomtemps oder halt als Umweg über eine Analyse abgreifen.
Ich empfehle natürlich die aktuelle Firmeware zu installieren und den Wert via Roomtemps abzugreifen :-)

wenn du folgenden HTML aufrufst ...


Zitat:Lokaler Aufruf:
https://GEKKO-IP/api/v1/var/roomtemps/item0/value?username=BENUTZER&password=PASSWORT

Plus-Query:
https://live.my-gekko.com/api/v1/var/roomtemps/item0/value?username=eMail-Benutzer&key=GEKKO-QueryAPI-Key&gekkoid=GEKKO-ID


... und folgendes wiederbekommst...

Zitat:"Act.Temp[°C];SetpointTemp[°C];Valve[%];Mode[1=Off|8=Comfort|16=Reduced|64=Manual|256=Standby];Reserved;TempAdjustment[°C];Cooling[0=Off|1=On];SumState[0=Ok|1=ManualOff|2=ManualOn|3=Locked|4=Alarm];Humidity[%rF];AirQuality[ppm|%];FloorTemp[°C]"

ist deine Firmware aktuell. Ansonsten mal updaten und erneut schauen.



Den Wert bekommst du dann wie folgt: 

Zitat:Lokaler Aufruf:
https://GEKKO-IP/api/v1/var/roomtemps/item0/sumstate/status?username=BENUTZER&password=PASSWORT

Plus-Query:
https://live.my-gekko.com/api/v1/var/roomtemps/item0/sumstate/status?username=eMail-Benutzer&key=GEKKO-QueryAPI-Key&gekkoid=GEKKO-ID

Als Ausgabe erhälst du dann eine JSON
Zitat:{
"value": "20.70;21.00;33.94;8;;0.00;0;0;55.32;;"
}

Feuchtigkeit wäre hier der 9 Wert, also 8 da 0-basierend.


Anzumerken wäre hier noch die Begrenzung der Abfragen welche lokal gemacht werden. Diese ist limitiert. Würde hier wenn vorhanden auf den Plusdienst setzen.


Gruß Thomas
An oder Aus … Geht oder geht nicht … Strom fließt oder nicht ... 1 oder 0 ....  [Bild: dodgy.png]
#5
Hi, hier Mal ein Code Schnipsel aus der Gekko Control App:


Code:
for (RoomTemp roomTemp in roomTemps) {
     var states = roomTemp.sumstate.value.split(";").toList();
     var i = shared.roomTemps
         .firstWhere((i) => i.itemId == roomTemp.itemId, orElse: () => null);
     if (i != null) {
       i.actTemp = double.tryParse(states[0]);
       i.setPoint = double.tryParse(states[1]);
       i.valve = double.tryParse(states[2]);
       i.mode = roomTempModeEnum(int.tryParse(states[3]) ?? 0);
       i.reserved = int.tryParse(states[4]);
       i.tempAdjust = double.tryParse(states[5]);
       i.coolingState = roomTempCoolingStateEnum(int.tryParse(states[6]));
       i.sumStateStatus = sumStateStatus(int.tryParse(states[7]) ?? 0);
       i.humidity = double.tryParse(states[8]);
       i.airQuality = double.tryParse(states[9]);
       i.floorTemp = double.tryParse(states[10]);
     }
   }


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste