Seite 1 von 4

OH2 refreshed Thermostat Befehl nicht (BasicUI)

Verfasst: 17. Dez 2019 07:47
von Kahzia
Hallo zusammen,


ich bin ziemlich frisch dabei und habe mich gleich an einem Tutorial für eine Heizungssteuerung versucht.

Das Tutorial welches ich befolgt habe findet Ihr unter folgendem Link:
https://tutorials-raspberrypi.de/raspbe ... me-nutzen/

Bisher waren alle Schritte erfolgreich, ich konnte OpenHab korrekt aufsetzen sowie den Raspberry anschließend mit dem Thermostat über Bluetooth verbinden. Auch die Befehle über den Link werden mittels JSONpath korrekt ausgegeben und umgesetzt.

Ich scheitere an dem letzten Teil des Tutorial und zwar an dem Punkt bei dem die steuerung nicht mehr über einen Link (in welchem ich die Temp) defieniere angebe sondern über die Basic app gesteuert wird.

Soweit so gut, alle erforderlichen Dateien (.items .cfg) wurden erstellt, sowie die Sitemap.
Pfade wurden natürlich angepasst, trotzdem ist es über die UI nicht möglich den Thermostat zu steuern, ich habe das Gefühl der StateChange (bei Eingabe auf der UI) wird richtig erkannt aber irgendwie setzt das Thermostat das ganze nicht um ?!

Ein Auszug aus dem OpenHab Log:

Code: Alles auswählen

2019-12-15 00:38:49.666 [vent.ItemStateChangedEvent] - thermostat_wz changed from 10 to 10.5
Wenn ich den Link der mittels der PHP Seite "ausgeführt" wird in die Browser URL eingebe "klappt" es halbwegs.

Code: Alles auswählen

thermostatWohnzimmer.url=http://IP/eq3/php/eq3.php?mac=00:1A:22:0F:C4:DD{Authorization=Basic SECRET}
Natürlich mit anderer IP sowie anderer MAC.
Der vordere Teil (bis zum Authorization) Part funktioniert im Browser und ruft das JSONpath auf, ich habe bereits den Code in der .items und.cfg angepasst und versucht das Authorization weg zu lassen, leider ohne Erfolg.

Irgendwie wird sich nicht verbunden mittels der PHP Seite, obwohl ich bei eingeben der URL in den Browser korrekte Werte und auch eine Verbindung erhalte.....

Ich bin da wirklich überfragt woran es noch liegen kann, in den Kommentaren von dem Tutorial hat wohl jemand auch dasselbe Problem wie ich... der Autor ist leider nicht gut erreichbar, daher bin ich jetzt hier gelandet :P


Für andere Lösungswege bin ich komplett offen, eventuell kann man das ja auch über executecommand lösen ?
Den Tipp habe ich zumindest bekommen, da fehlt mir aber bisher das wissen das umzusetzen.


Ich hoffe Ihr könnt mir weiterhelfen oder bringt mich auf neue Lösungswege.

Vielen Dank euch

Viele Grüße aus München
Kahzia

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 17. Dez 2019 13:41
von peter-pan
Hast du das HTTP-Binding in OH installiert?

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 18. Dez 2019 07:22
von Kahzia
Guten Morgen,


nicht das ich wüsste, ich bin nur dem Tutorial gefolgt.
Ich habe leider keinerlei Erfahrung mit OpenHab, ich habe derweil gegoogled

https://www.openhab.org/addons/bindings/http1/

gibt es einen extra Befehl zum installieren des http binding ?
oder sehe ich das richtig, dass es in der UI als Addon ausgewählt werden kann (genau wie das JSONPath) ?

Kann es von der Arbeit aus leider nicht testen oder suchen :P


VG
Kahzia

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 18. Dez 2019 08:20
von peter-pan
Genau. Du kannst es über die PaperUI installieren.

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 18. Dez 2019 22:35
von Kahzia
Guten Abend,


das Binding war tatsächlich nicht installiert, ich habe es jetzt nachgeholt.


In dem Expert Mode vom HTTP Binding wurden auch gleich die beiden .cfg Bindings erkannt

Code: Alles auswählen

thermostatWohnzimmer.url=http://192.168.178.35/eq/php/eq3.php?mac=00:1A:22:10:71:C8{Authorization=Basic SECRET}
thermostatWohnzimmer.updateInterval=120000
Timeout steht in der Config vom HTTP Binding auf 5000 sowie Granularity auf 1000
hatte kurzzeitg den Timeout auf 15000 erhöht, war ein Versuch wert :P das gab aber nur Errors im Log.

Leider klappt es immernoch nicht... :(

Auszug vom Log:

Code: Alles auswählen

2019-12-18 22:25:59.935 [ome.event.ItemCommandEvent] - Item 'thermostat_wz' received command 15
2019-12-18 22:25:59.943 [vent.ItemStateChangedEvent] - thermostat_wz changed from 15.5 to 15
Wird leider wieder "erkannt" aber nicht umgesetzt :roll:

Das einzige was mir jetzt noch einfallen würde, im Tutorial wird nicht die IP Adresse aufgerufen sondern die HTTP openhabianpi/Pfad
das geht bei mir leider garnicht, ich kann Openhab nur über Openhab:8080 erreichen und den PI nur über die IP Adresse/Pfad
aber das sollte denke ich mal egal sein oder ?...


Ich war noch ein wenig im HABmin unterwegs, dort werden die Items zumindest erkannt.
Things sind nicht vorhanden und HTTP Bindings eigentlich auch nicht ?! evtl sieht man die dort auch nur nicht in der "PaperUI" sind die ja vorhanden... ?

Unbenannt.JPG
Unbenannt2.JPG



Beispiel aus der .items

Code: Alles auswählen

http://192.168.178.35/eq/php/eq3.php?mac=00:1A:22:10:71:C8&temperature=%2$s{Authorization=Basic%20SECRET}
wenn ich das so in den Browser eingebe, erhalte ich das JSONpath zurück mit den aktuellen Werten des Thermostates.
Also die "Links" müssen eigentlich funktionieren, irgendwie wird nur nichts in das "temperature" eingetragen von der PHP hab ich das Gefühl...

Mehr fällt mir leider nicht mehr ein, hast du /Ihr noch eine Idee ??
Ich bin für alles offen, ich hoffe das klappt noch irgendwann :) :)


VG aus München
Kahzia

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 18. Dez 2019 22:58
von peter-pan
Mmmh. Mit Habmin kenn ich mich nicht aus. Ich habe als Oberfläche BasicUI. :|

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 18. Dez 2019 23:08
von Kahzia
ja Habmin mal ausenvor, da wird denke ich nicht der Fehler liegen.
Der Fehler muss irgendwie daran liegen, dass die UI die Werte einfach nicht befüllt.

Hilft es wenn ich den PHP Code noch hochlade ?

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 18. Dez 2019 23:32
von peter-pan
Du bekommst doch die Werte ?!
2019-12-18 22:25:59.935 [ome.event.ItemCommandEvent] - Item 'thermostat_wz' received command 15
2019-12-18 22:25:59.943 [vent.ItemStateChangedEvent] - thermostat_wz changed from 15.5 to 15
Hochladen brauchst du nichts. Ich hab mal kurz in den Link, den du oben angegeben hast, reingeschaut. Ich denke doch, dass du das alles soweit richtig gemacht hast. Ich muss auch ehrlich sagen, dass ich keine Ahnung von PHP, bzw. Programmierung habe. Ich habe mich auch mit Bluetooth noch nicht weiter beschäftigt.

Allerdings, wenn ich das richtig verstanden habe, kann man dann maximal zwei Thermostate anschliessen, da soweit ich weiss, das HTTP-Binding nur zwei Cache-Channels hat.

Wenn du den von dir verlinkten Post nochmal anschaust, siehst du, dass ich genau diese Frage heute morgen in den Post eingestellt habe

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 19. Dez 2019 10:57
von Kahzia
Soweit ich weiß, kann man mehr als 2 steuern.
Da die Verbindung nach einer gewissen Zeit getimeout wird.
Der Pi kann nur eine Verbindung zur Zeit zulassen, so wie das jetzt gesehen habe sollte das kein Problem sein.
Zumindest Steuer ich über das JSONpath aktuell 4 Stück.

Der Log ist vom openhab, richtig ich receive Werte und setze Werte. Aber der Thermostat setzt diese nicht um.

Genau das ist ja das komische, weil wenn ich den Befehl in den Browser als URL eingebe funktioniert es, nur halt über die PHP bzw das basicui nicht.
Obwohl es ja keinen Sinn ergibt da die Befehle in "roh" Form funktionieren, also es muss irgendwie an openhab scheitern :(


Man kriegt ja nichtmal ne gescheite Fehlermeldung , ich wollte mich gerne am Pfad entlang hangeln und nach und nach testen, aber mit nem klassischen Echo kann man nichts ausgeben, keine variable nichts... Weil alles in Java ist 😐 da bin dann raus.

Warst halt schön Mal als.ausgabe die Variable für die eingetragenen Werte zu haben etc

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 19. Dez 2019 13:29
von udo1toni
Also grundsätzlich kann man beliebig viele http Caches anlegen, man muss nur die Konfigurationspaare mit eindeutigen IDs versehen.

Was ich beim Überfliegen der Anleitung zu verstanden haben glaube, ist, dass es sich um Bluetooth Thermostate handelt. Irgendwo läuft ein Bluetooth Stack, der die Verbindung zu den Thermostaten herstellt. Ein PHP Script liest die Daten der Thermostaten aus und steuert sie auch. Das PHP Script ist über eine Webschnittstelle per http erreichbar, soweit korrekt?

Es ist also die Frage, wie das Script unterscheidet, welches Thermostat gerade angesprochen werden soll.