UniFi-basierte Anwesenheitserkennung

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

L.N.
Beiträge: 23
Registriert: 28.04.2018, 14:28
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 9 Mal

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von L.N. » 12.02.2021, 19:42

daham@chello.at hat geschrieben:
12.02.2021, 18:16
Übrigens ich hab das jetzt hinbekommen, funktionier super.
Freut mich. :-)

Gruß L.N.
238 Programme, 233 Variablen, 93 Aktoren, 785 Kanäle

carsten148
Beiträge: 17
Registriert: 16.10.2017, 14:55

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von carsten148 » 15.02.2021, 15:22

Vorab: Geile Idee!

Versuche das gerade umzusetzen; Blöde Frage, aber wie befüllt ihr denn die Variablen "Zeichenkette" händisch?
Über die WebGUI geht das ja leider in der CCU2 nicht

Benutzeravatar
Roland M.
Beiträge: 9736
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 251 Mal
Danksagung erhalten: 1356 Mal

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von Roland M. » 15.02.2021, 15:27

Hallo!
carsten148 hat geschrieben:
15.02.2021, 15:22
wie befüllt ihr denn die Variablen "Zeichenkette" händisch?
Über die WebGUI geht das ja leider in der CCU2 nicht
Programme > Script testen
Dort eingeben: dom.GetObject("meine_Systemvariable").State("mein_Wert");
(Bitte auf Groß-/Kleinschreibung und Satzzeichen achten!)


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

carsten148
Beiträge: 17
Registriert: 16.10.2017, 14:55

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von carsten148 » 15.02.2021, 15:32

Danke, Roland. Machmal ist man daneben.
Hat denn das jemand auf einer CCU2 erfolgreich am Laufen? Der Ersteller schreibt ja CCU3, hat das einen bestimmen Zusammenhang?
Bekomme es trotz der jetzt richtig gesetzten Variablen nicht so recht ans Laufen

L.N.
Beiträge: 23
Registriert: 28.04.2018, 14:28
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 9 Mal

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von L.N. » 15.02.2021, 19:16

Hallo carsten148,

Mir würde kein Grund einfallen, warum das nicht auch auf der CCU2 laufen sollte. Im Prinzip macht die CCU ja nichts weiter, außer mittels CUxD einen https-Befehl an den UniFi-Controller zu senden, das XML-Ergebnis entgegen zu nehmen, in einer Variable ("xml_result") zu speichern und darin nach definierten Teil-Strings (hier: MAC-Adressen) zu suchen.

Bekommst Du denn auf der CCU eine XML-Antwort vom UniFi-Controller? Wenn ja - wie sieht die aus?

Gruß L.N.
238 Programme, 233 Variablen, 93 Aktoren, 785 Kanäle

carsten148
Beiträge: 17
Registriert: 16.10.2017, 14:55

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von carsten148 » 17.02.2021, 08:27

Hallo L.N.,

danke für deine Antwort. Ja, ich bekomme die XML antwort (habe das mit curl getestet, wie du ein paar Posts weiter oben beschrieben hast) und die Antwort sieht für mich gut aus.

Im Syslog von CUx-D kommen lediglich diese beiden Meldungen:

Feb 17 08:25:59 piVCCU daemon.info cuxd[22257]: pclose(/usr/local/addons/cuxd/curl -X POST 'https://geändert:8443/api/login' --data-binary '{"username":"geändert","password":"geändert","strict":true}' --compressed --insecure -c cookies.txt --next 'https://geändert:8443/api/s/default/stat/sta' --compressed --insecure -b cookies.txt -c cookies.txt) exit(127) 0s

Feb 17 08:25:59 piVCCU daemon.info cuxd[22259]: system(rm /usr/local/addons/cuxd/cookies.txt) exit(1) 0s

An den Variablen ändert sich leider nichts.

Danke & Grüße
Carsten

MillenChi
Beiträge: 168
Registriert: 10.12.2014, 16:40
Wohnort: Daun
Hat sich bedankt: 10 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von MillenChi » 17.02.2021, 14:02

daham@chello.at hat geschrieben:
12.02.2021, 18:16
MillenChi hat geschrieben:
12.02.2021, 14:04
Kurze Gegenfrage.
Wieso so aufwendig? Wieso nicht einfach die Geräte anpingen?
Und wie würde das mit einem anpingen funktionieren?

Übrigens ich hab das jetzt hinbekommen, funktionier super.
Hatte die Variablennamen nicht ganz richtig. ;-)
In NodeRed (RedMatic) easy...
Für das Ping gibt einen echt guten Node...
Bei mir sieht das so aus.
12.png

L.N.
Beiträge: 23
Registriert: 28.04.2018, 14:28
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 9 Mal

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von L.N. » 21.02.2021, 20:54

carsten148 hat geschrieben:
17.02.2021, 08:27
Ja, ich bekomme die XML antwort (habe das mit curl getestet, wie du ein paar Posts weiter oben beschrieben hast) und die Antwort sieht für mich gut aus.
Hallo carsten148,

sind in der XML-Antwort Deines UniFi-Controllers irgendwo die MAC-Adressen Deiner relevanten Smartphones enthalten? Wenn ja, solltest Du prüfen, ob die Einträge am Script-Anfang in Zeile

Code: Alles auswählen

string phone_list = "Name1:Name2:Name3";
zu den Bezeichnungen Deiner Systemvariablen passen. Zu einem "Name1" muss es eine Systemvariable "Smartphone_Name1.mac_address" (Typ Zeichenkette) sowie eine weitere "Anwesenheit.Name1" (Typ Logikwert) geben. Sicherheitshalber solltest Du auch nochmal die richtige Schreibweise der MAC-Adressen in Deinen Systemvariablen checken - bei mir sind Buchstaben klein geschrieben (ggf. einfach aus der XML-Antwort Deines UniFi-Controllers herauskopieren).

Ist auch das korrekt, dürfte die Ursache im letzten Teil des Scripts ab

Code: Alles auswählen

! XML-Ergebnis (UniFi-Controller-Abfrage) auswerten:
...
liegen (dort wird der XML-String nur iterativ nach den von Dir definierten MAC-Adressen durchsucht und die zur gefundenen MAC-Adresse gehörende Anwesenheitsvariable gefüllt). Ggf. ist bei Dir in diesem letzten Script-Teil ein Kopier- oder Tippfehler enthalten?

Viel Erfolg bei der weiteren Fehlersuche.

Gruß L.N.
238 Programme, 233 Variablen, 93 Aktoren, 785 Kanäle

carsten148
Beiträge: 17
Registriert: 16.10.2017, 14:55

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von carsten148 » 22.02.2021, 10:04

Danke für deine ausführliche Antwort!
Alle Werte passen soweit, ich bekomme eine korrekte Antwort von Unifi-Controller.

Was mir jetzt im CUxD Syslog noch aufgefallen ist sind diese beiden Fehlermeldungen, die jedes mal kommen, wenn das Programm ausgeführt wird:

Code: Alles auswählen

Feb 22 09:58:36 piVCCU local0.err ReGaHss: ERROR: XmlrpcTypeToIseVal() failed for '[]' [CallGetValue():iseXmlRpc.cpp:1443]
Feb 22 09:58:36 piVCCU local0.err ReGaHss: ERROR: CallGetValue failed; sVal =  [ReadValue():iseDOMdpHSS.cpp:124]
Kann es leider nicht zuordnen, hast du noch einen Tipp für mich?

Danke & Grüße
Carsten

L.N.
Beiträge: 23
Registriert: 28.04.2018, 14:28
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 9 Mal

Re: UniFi-basierte Anwesenheitserkennung

Beitrag von L.N. » 22.02.2021, 20:59

Hallo carsten148,
carsten148 hat geschrieben:
22.02.2021, 10:04
Alle Werte passen soweit, ich bekomme eine korrekte Antwort von Unifi-Controller.
heißt das, dass jetzt auch Deine Systemvariablen für die Anwesenheit korrekt gesetzt werden? Falls nicht, poste doch hier mal (auszugsweise) die XML-Antwort, die Du vom UniFi-Controller erhältst.

Die Einträge in Deinem Syslog ("...piVCCU...") stammen eher nicht von CUxD, sondern offensichtlich von piVCCU - das nutze ich nicht und kann deswegen dazu nichts beitragen. Ich würde vermuten, dass diese auch nichts mit dem UniFi-Script zu tun haben - es sei denn, sie stehen in einem reproduzierbarem zeitlichen Zusammenhang.

Gruß L.N.
238 Programme, 233 Variablen, 93 Aktoren, 785 Kanäle

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“