Seite 2 von 4

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 19. Dez 2019 13:52
von peter-pan
...wieder was dazu gelernt. :)

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 20. Dez 2019 12:53
von Kahzia
Genau so ähnlich verstehe ich das auch.

Code: Alles auswählen

http://196.172.186.35/eq/php/eq3.php?mac=00:1A:22:0F:C4:DD&temperature=24.0&mode=manual
das ist der Befehl, den man in den Browser eingibt.
Die PHP Seite erwartet die MAC Adresse und kann sich dann Anhand dieser mit dem Thermostat verbinden.
Das ist auch in der eq3.exp abgelegt.

Das ganze lässt sich auch über die Console steuern mit NUR der MAC Adresse + Temperatur + Manual oder Auto Mode

Da ich über die Console den Thermostat erreiche und steuern kann gehe ich davon aus, dass hier schonmal alles richtig funktioniert.
Gebe ich nun im Script an, dass ich es von der PHP aus steuere und dann den "Link" im Browser eingebe:

Code: Alles auswählen

http://196.172.186.35/eq/php/eq3.php?mac=00:1A:22:0F:C4:DD&temperature=24.0&mode=manual
funktioniert es auch ! Bedeutet auch hier klappt der connect und der Thermostat führt den Befehl aus.


Erst nachdem das ganze dann an die BASICUI gebunden wird mit (.cfg .items) und quasi von Openhab gesteuert werden soll funktioniert es nicht mehr.
Hier wird im Openhab Log zwar der Itemstate "vollzogen" aber der Thermostat setzt es nicht um.
Ich würde gerne Fehlersuche betreiben, scheitere aber daran mir die Variable ausgeben zu lassen, welche die Temperatur in dem Fall beinhalten sollte.
Das ganze ist zwar in <?php </php geschrieben, dennoch kann ich dort keinen Echo "Variable" einbauen, da dies zum Error von dem Javascript führt.
Also es scheitert bei mir an den Fehlersuche....

Meine Vermutung ist, dass die BASICUI Probleme macht, da ich durch den "link" und den connect über die Console eigentlich die beiden Seiten abgesichert habe.
vielleicht sind ja auch die .cfg und .items nicht ganz korrekt ?!

Noch jemand Ideen dazu :P ?


PS: ich möchte erstmal nur einen steuern und habe auch nur einen in das ganze eingebunden.

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 20. Dez 2019 15:28
von udo1toni
in der http.cfg legst Du einen http cache an. Der Cache ist nur lesend. Wie sieht Deine Itemdefinition konkret aus?

Die Basic UI sendet Befehle an Items und stellt Status von Items dar, nicht mehr und nicht weniger. Da gibt es nichts, was Probleme machen kann.
Oder doch...: Wenn Du etwas an der Sitemap änderst, funktioniert danach das Autoupdate nicht mehr, bis zu einem Neustart von openHAB, heißt, Du musst die Seite manuell neu aufrufen, damit die Darstellung wieder aktuell ist.

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 21. Dez 2019 11:07
von Kahzia
Guten Morgen,


danke für die schnelle Rückmeldung.

Also ich habe nochmal ein wenig rumprobiert, es muss an Openhab liegen.
Bzw an meiner falschen Konfig oder Unwissenheit.

Dies ist der Grundbefehl, welcher in der .items abgespeichert ist.

Code: Alles auswählen

http://192.168.178.35/eq/php/eq3.php?mac=00:1A:22:0F:C4:DD&amp;temperature=%2$s{Authorization=Basic SECRET}] &lt;[thermostatWohnzimmer:600000:JSONPATH($.temperature)]
Ich habe nun den Befehl so abgwandelt, dass ich diesen wieder in den Browser eingeben kann. Also logischerweise das "greater than und less then" entfernt so wie das amp durch das & ersetzt.
Die Temperatur lasse ich jetzt mit einem statischen Wert von 25 eintragen.
Dieser Befehl funktioniert ! Der Thermostat setzt es um.

Es muss also an meiner Unwissenheit gegenüber Openhab liegen.

Code: Alles auswählen

http://192.168.178.35/eq/php/eq3.php?mac=00:1A:22:10:71:C8&temperature=25{Authorization=Basic SECRET};[thermostatWohnzimmer:600000:JSONPATH($.temperature)]
Entweder wird die Variable für die Temperatur von der BASICUI nicht befüllt "%2$s" oder es ist grundlegend etwas falsch, weil mit statischen Werten funktioniert das Ganze ja....


Ich versuche ganz kurz zu erklären, was ich bisher unternommen habe.

Code: Alles auswählen

sudo nano /etc/openhab2/items/thermostat.items

Code: Alles auswählen

sudo nano /etc/openhab2/services/http.cfg

Code: Alles auswählen

sudo nano /etc/openhab2/sitemaps/default.sitemap
das sind die 3 einzigen Befehle, welche ich für Openhab ausgeführt habe.
Die Inhalte wurden entsprechend des Tutorials befüllt, nachträglich (durchs Forum) habe ich noch das HTTP Binding installiert.

Die Seite refresht sofort, heißt die Werte verändern sich "automatisch" bzw sofort in der UI, hier ist kein Fehler in der Sitemap würde ich sagen.

Die /etc/openhab2/services/http.cfg schaut bei mir so aus:

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

Mir ist noch etwas aufgefallen, sobald ich Änderung an der .items vornehme und hinterher trotzdem den "Urzustand" wiederherstelle, erhalte ich folgende Fehlermeldung im Log.
Das würde zumindest auch erklären, weshalb mir NIE sofort das Ventil bzw die Stellung angezeigt wird, dies ist ja auch immer unbefüllt.
Es muss also an mir bzw am Binding liegen, da bin ich jetzt leider komplett überfragt und Google bringt mir auch nicht den Aha Effekt :P


2019-12-21 11:15:13.183 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type 'http' of item 'thermostat_wz_valve' could not be parsed correctly.

org.eclipse.smarthome.model.item.BindingConfigParseException: bindingConfig '&lt;[thermostatWohnzimmer:600000:JSONPATH($.valve)]' doesn't contain a valid binding configuration

at org.openhab.core.binding.internal.BindingConfigReaderDelegate.processBindingConfiguration(BindingConfigReaderDelegate.java:51) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:397) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:366) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.processBindingConfigsFromModel(GenericItemProvider.java:229) ~[?:?]

at org.eclipse.smarthome.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:432) ~[?:?]

at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:301) ~[?:?]

at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:139) ~[?:?]

at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:227) ~[?:?]

at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:291) ~[?:?]

at org.eclipse.smarthome.core.service.WatchQueueReader.lambda$3(WatchQueueReader.java:323) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

at java.lang.Thread.run(Thread.java:748) [?:?]

Caused by: org.openhab.model.item.binding.BindingConfigParseException: bindingConfig '&lt;[thermostatWohnzimmer:600000:JSONPATH($.valve)]' doesn't contain a valid binding configuration

at org.openhab.binding.http.internal.HttpGenericBindingProvider.parseBindingConfig(HttpGenericBindingProvider.java:143) ~[?:?]

at org.openhab.binding.http.internal.HttpGenericBindingProvider.processBindingConfiguration(HttpGenericBindingProvider.java:119) ~[?:?]

at org.openhab.core.binding.internal.BindingConfigReaderDelegate.processBindingConfiguration(BindingConfigReaderDelegate.java:49) ~[?:?]

... 16 more
Viele Grüße aus dem Süden
Kahzia

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 21. Dez 2019 20:33
von Kahzia
Nochmal ein Nachtrag, müsste ich nicht ein "Thing" o.ä erstellen ?

VG
Kahzia

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 21. Dez 2019 21:25
von peter-pan
Nein, in OH1-Bindings gibt es keine "Things"

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 22. Dez 2019 00:11
von Kahzia
aber ich hab och OH2 drauf oder ?
ist da der Fehler ?

VG

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 22. Dez 2019 00:56
von peter-pan
Nein natürlich nicht; alles "Roger" ;) . Für das HTTP-Binding gibt es aber noch keine 2.x Version.
Für die meisten anderen Bindings (sofern diese schon unter OH1 existiert haben) gibt es aber auch eine 2.x Version (z.B.:MQTT1,MQTT2). Es ist halt nur so, dass es die "Things" erst seit OH2 gibt. In OH1 wurde das, soweit ich das weiss mit den .cfg-Files gemacht (Aber so lange bin ich auch noch nicht dabei :lol: , obwohl ich schon "Privatier" :D bin). Und die OH2.x Bindings waren auch nicht gleich von Beginn des OH2-Releases vorhanden, sondern wurden erst im Laufe der Zeit entwickelt.
Deshalb gibt es auch den Legacy-Swich in der PaperUI. Mit dem kann man die OH1-Bindings ausblenden, wenn es auch OH2-Bindings dafür gibt. Das macht aber nur dann Sinn, wenn man auch diese Bindings schon "geupgraded" hat.
Ich selbst habe nur noch "HTTP" und "mapDB" in der Version 1.x, da gibt es noch nichts Neueres. Alle anderen Bindings sind schon aufOH2.x umgestellt.

Gruss
Peter

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 22. Dez 2019 11:58
von Kahzia
Danke für die Aufklärung ! :) :idea:


Hat schon jemand einen Lösungsansatz für die Fehlermeldung bzgl des bindings (siehe oben)?





Falls ich garnicht mehr weiterkomme, kann man das ganze Projekt sonst auch anders lösen ?
Wäre allerdings schade, weil ich das schon gerne mit OH realisieren würde.


VG
Kahzia

Re: eQ-3 Thermostat mit OpenHab Smart Home

Verfasst: 22. Dez 2019 13:07
von peter-pan
2019-12-21 11:15:13.183 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type 'http' of item 'thermostat_wz_valve' could not be parsed correctly.
org.eclipse.smarthome.model.item.BindingConfigParseException: bindingConfig '&lt;[thermostatWohnzimmer:600000:JSONPATH($.valve)]' doesn't contain a valid binding configuration
...Wie gesagt, ich bin da nicht kompetent, aber mich wundert es schon, dass in der Fehlermeldung von $.valve die Rede ist. Hattest du nicht $.temperature als JSON-String in deinen Definitionen ?