@mcm1957
Danke, mach ich beim nächsten Mal.
Das Problem hat sich mittlerweile gelöst; der HUUM-Support hat heute Vormittag geschrieben:
We would like to inform you that we have identified latency issues between our server and the UKU sauna controller, along with incorrect status mapping on the controller. We are actively working on resolving these issues and have already fixed the incorrect status mapping...
Bei mir funktioniert nun alles wieder. Offenbar lag das Problem nicht beim iob-Adapter.
NEWS
Best posts made by DSt88
-
RE: Test Adapter iobroker.huum-sauna GitHub/Latest
Latest posts made by DSt88
-
RE: Test Adapter iobroker.huum-sauna GitHub/Latest
@mcm1957
Danke, mach ich beim nächsten Mal.
Das Problem hat sich mittlerweile gelöst; der HUUM-Support hat heute Vormittag geschrieben:
We would like to inform you that we have identified latency issues between our server and the UKU sauna controller, along with incorrect status mapping on the controller. We are actively working on resolving these issues and have already fixed the incorrect status mapping...
Bei mir funktioniert nun alles wieder. Offenbar lag das Problem nicht beim iob-Adapter. -
RE: Test Adapter iobroker.huum-sauna GitHub/Latest
@besterquester
Eine Frage an den Architekten dieses wunderbaren Adapters bzw. auch alle anderen, die diesen nutzen. Bis vor Kurzem hat bei mir der Adapter noch funktioniert, aber nun (ich vermute seit einem der letzten js-Updates) werden neue Werte vom HUUM-Controller nicht übernommen. Die HUUM-App (Android) funktioniert weiterhin. Browser-Abfragen über https://api.huum.eu/action/home/status funktionieren tadellos.
Hat jemand Rat? -
RE: Test Adapter iobroker.huum-sauna GitHub/Latest
@fly001
Über die Standard-HUUM-App (Android) funktioniert der Zugriff bei mir (leider vmtl immer noch ohne WLAN Mesh Steering). Über ioBroker mit HUUM-Adapter aber leider seit Kurzem nicht mehr:
(Die Sauna läuft zum Zeitpunkt des Log-Auszugs natürlich...) -
RE: Zustandsänderungen loggen
Ich antworte mal kurz auf meinen vorigen Post, da ich das Problem schließlich lösen konnte
.
Beim responseType musste ich noch ändern zu:responseType: 'text'
Außerdem hatte ich was beim Aufruf der asyn-Funktion ExecuteMyRequest() vermurkst. Aber nun läuft es.
Danke nochmals allen für den Support. Top Forum hier.
-
RE: Zustandsänderungen loggen
Lieber @oliverio, liebe alle,
danke. Die Bibliothek (https://github.com/nayrnet/node-dahua-api) konnte ich leider nicht mehr zum Laufen bringen, da sie nicht mehr gewartet wird:npm error notsup Required: {"node":">=0.10 <=0.12||>=4 <=7"} npm error notsup Actual: {"npm":"10.8.2","node":"v20.18.1"}
Einiges anderes habe ich nun probiert und in Erfahrung bringen können. Unter anderem hab ich ein altes API-Skript für Dahua-Devices gefunden:
Link zu Dahua "API of HTTP Protocol Specification"
Da Goliath-Cams etc. vormals Dahua waren, und offenbar im Kern/technisch wenig verändert wurde, funktionieren auch noch Anfragen im Browser wie bspw.:
http://username:password@192.168.x.x/cgi-bin/alarm.cgi?action=getInSlots
Im Browser werden nach dieser Anfrage einfache Textfragmente wie zB "result=5" dargestellt, die sich bei Alarmen etc. verändern. Vielleicht geht da was.
Nun stehe ich aber an, die GET-Funktion zur Abfrage korrekt zu implementieren. Problem scheint die Authentifizierung zu sein. Mit httpGet und XMLHttpRequest habe ich es leider nicht geschafft (ich könnte CodeSnipplets dazu schicken); mit request.get() sowieso nicht. Mit Axios bzw. AxiosDigestAuth habe ich zumindest keinen Fehler erhalten. Aber response bekomme ich auch keinen. Mir scheint, dass async() niemals ausgeführt wird. Hier ein CodeSnipplet, welches ich von https://forum.iobroker.net/topic/76168/dahua-camera-snapshot-mit-axios/2
adaptiert habe:const axios = require('axios'); const AxiosDigestAuth = require('@mhoc/axios-digest-auth').default; const options = { axios, username: "username", password: "password", }; const axiosDigestAuthInst = new AxiosDigestAuth(options); const ExecuteMyRequest = async () => { const requestOptions = { responseType: 'arraybuffer', method: 'GET', url: 'http://192.168.x.x/cgi-bin/alarm.cgi?action=getInSlots', } const response = await axiosDigestAuthInst.request(requestOptions); console.log('done.'); };
Hat jemand eine Idee, warum das nicht funktioniert? Bleibt mir keine Wahl, als MQTT zu implementieren?
-
RE: Zustandsänderungen loggen
@codierknecht
Ja genau, Goliath ist quasi Dahua neugebrandet.
Und ja: WebUI gibt es. Hast du eine Idee wie ich den KlingelEvent catchen kann? -
RE: Zustandsänderungen loggen
Vielen Dank @Homoran und @Codierknecht. Mit der Umstellung der JS-Instanz auf Debug und einer kleinen JS-Korrektur beim Trigger hat es nun funktioniert.
Da dabei ggf. mehrere 100 States geloggt werden, hab ich das nur sehr kurz laufen lassen. Sonst wäre mir wsl. der Raspberry explodiert
.
Bad News für meinen Task: Leider scheint nicht, wie erwartet, die Türklingel vom ONVIF-Adapter erfasst zu werden. Sondern nur vorhandene Events wie die Gartentor-Öffnung. Schade.
-
RE: Zustandsänderungen loggen
Danke für den Input!
Mit Blockly hab ich leider keinen Output in den Logs generieren können. Ich habe daher versucht, entsprechende Javascript-Zeilen zu programmieren. Folgendes führt aber leider ebenso zu keinen Log-Einträgen:on({ id: 'onvif.0.*', change: 'any' }, function (obj) { log('blablabla'); });
bzw. auch die Übersetzung von Blockly in JS:
on({ id: [].concat(Array.prototype.slice.apply($('onvif.0.*'))), change: 'any' }, async (obj) => { log('blablabla'); });
Verwende ich vielleicht die Wildcards falsch?
-
RE: Zustandsänderungen loggen
Hi,
auch wenn dieses Topic schon recht alt ist, würde ich gerne nachfragen, wie das Loggen von allen Datenpunkten (oder beschränkt auf die Datenpunkte eines Adapters) realisiert werden kann.
Der Hintergrund: Ich habe eine Goliath Türsprechanlage. Bei Betätigung der Klingel soll via Messenger meines Vertrauens ein Snapshot von der Goliath-Kamera gesendet werden. Per Workaround konnte ich (mit dem ONVIF-Adapter, da es keinen ioBroker-Goliath-Adapter gibt) die Kamera einbinden und kann mir Snapshots ans Handy schicken. Auslöser dafür soll nun eben die Türklingel sein, die ich leider nicht als Event im ONVIF-Adapter finde (was irgendwie logisch ist). Aber ich glaube fest daran, das es einen State gibt, der sich verändert wenn die Türklingel betätigt wird (auch weil ja die Videoübertragung von Goliath beginnt, wenn geklingelt wird). Da es aber schätzomativ 100-200 Datenpunkte im ONVIF-Adapter gibt, möchte ich alle Zustandsänderungen davon loggen (ohne diese zB einzeln erst konfigurieren zu müssen). -
RE: Wie in der vis einen Ton abspielen lassen?
Liebe Community, ich habe eine Frage zur Sound-Steuerung. Zwar kann ich einen bestimmten Sound starten (danke für das Skript btw. !). Dafür verwende ich:
... setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "playSound", "data": "http://....mp3"}'); ...
Bei einem bestimmten Action-Event möchte ich nun aber, dass die Wiedergabe "terminiert", also nicht einfach pausiert, wird. Weil: Ich möchte nicht, dass bei jedem Event-Auslöser ein neuer Prozess gestartet wird.
Wie könnte ich die Wiedergabe entsprechend stoppen?