NEWS
[Aufruf] deConz Adapter Testen 1.1.2
-
Ich habe am Wochenende einen Xiaomi Smart Switch in deconz umbenannt. Daraufhin habe ich die Datenpunkte für diesen entfernt und durch einen Adapterneustart neu anlegen lassen.
Jetzt fehlt jedoch der Datenpunkt buttonpressed, es existiert lediglich buttonevent. Vorher war dieser definitiv da, da ich ihn in Skripten sogar verwendet habe. Weitere Neustarts des Adapters haben leider nichts gebracht.Wie bekomme ich den Datenpunkt buttonpressed zurück?
Deconz Adapter läuft in Version 1.1.2.
-
@siggi85 meine Antwort wäre Adapter Neustart, aber das hast du ja schon versucht.
Ich nehme an du hast schon mal auf den Taster gedrückt seit dem?Sonst fällt mir ein den ganzen Objektbaum für den Adapter löschen.
-
@Jey-Cee sagte in [Aufruf] deConz Adapter Testen 1.1.2:
Sonst fällt mir ein den ganzen Objektbaum für den Adapter löschen.
Dabei habe ich Angst, dass er mir dann alle buttonpressed Datenpunkte weghaut. Der neue ist "noch" nicht so wichtig.
Ist das Löschen aller deconz Datenpunkte dann eher Verzweiflung oder löst das irgendwas aus, was den Fehler ggf. beheben könnte?! Das Löschen des zugehörigen Objektbaums (Sensor_15) habe ich ja bereits versucht.
EDIT: Laut meiner Frau hat meine Tochter schon paar mal drauf rum gedrückt, und ich habe es glaub ich auch ein mal nach der Umstellung getestet, bin mir aber nicht mehr sicher, daher werde ich erst Mal das heute Abend testen. Mal schauen.
-
@siggi85 sagte in [Aufruf] deConz Adapter Testen 1.1.2:
Dabei habe ich Angst, dass er mir dann alle buttonpressed Datenpunkte weghaut. Der neue ist "noch" nicht so wichtig.
Der Buttonpressed wird vom Adapter nicht automatisch erzeugt wenn er gestartet wird. Er wird ausschliesslich dann angelegt wenn ein Knopf gedrückt wird. Dabei ist aber zu beachten: wenn du im Browser den Objektbaum offen hast, und dann den Taster drückst, dann erscheint der Datenpunkt nicht (immer) automatisch. Du musst ggf. die Darstellung des Objektbaums aktualisieren (im ioBroker, nicht im Browser)
A.
-
@Asgothian sagte in [Aufruf] deConz Adapter Testen 1.1.2:
@siggi85 sagte in [Aufruf] deConz Adapter Testen 1.1.2:
Dabei habe ich Angst, dass er mir dann alle buttonpressed Datenpunkte weghaut. Der neue ist "noch" nicht so wichtig.
Der Buttonpressed wird vom Adapter nicht automatisch erzeugt wenn er gestartet wird. Er wird ausschliesslich dann angelegt wenn ein Knopf gedrückt wird. Dabei ist aber zu beachten: wenn du im Browser den Objektbaum offen hast, und dann den Taster drückst, dann erscheint der Datenpunkt nicht (immer) automatisch. Du musst ggf. die Darstellung des Objektbaums aktualisieren (im ioBroker, nicht im Browser)
A.
Dann bin ich schon auf heute Abend gespannt. Ich werde Rückmeldung geben.
-
Nach dem ersten Mal drücken kam lastupdated dazu, nachdem zweiten mal buttonpressend. Ich bin wieder glücklich. Danke für die Hilfe.
-
Xiaomi Aqara Tür- & Fensterkontakte
Hallo,
wie kann ich die Fensterkontakte anlernen? Ich habe schon versucht einmalig für 5 Sekunden zu drücken und dann gewarnt, wie beim Zigbee Adapter einmal 5 Sekunden gedrückt und dann alle 2 Sekunden einmal kurz, und auch dauernd gedrückt. Die Kontakte haben sich aif keiner der Weißen anlernen lassen.
Xiaomi Buttons, BWM und Temperatursensoren funktionieren, Innr und Osram Stecker auch ohne Probleme... Nur die Fensterkontakte machen mich wahnsinnig. Kann mir jemand nen Tipp geben? -
@CKMartens Eigentlich gibt es da keinen besonderen Trick bei. In deconz oder Phsocon pairing aktivieren und dann den Schalter am Türkontakt lange gedrückt halten. Ob es 5 Sek oder 10 Sek sind kann ich nicht sagen. Mache das immer nach Gefühl. Dann kurz warten und ein paar mal den Knopf kurz drücken. Meistens zeigt Phoscon zu dem Zeitpunkt schon an, dass er den Sensor gefunden hat.
-
@CKMartens Bist du nah am Conbee dran? Ggf. könnte das helfen?!
Die Sensoren wurden bei mir über deconz um ein vielfaches einfacher angelernt als am CC2531. Ich habe auch alle von dir genannten Sensoren mehrfach im Einsatz und kann leider keinen speziellen Tipp für Fensterkontakte geben.
Hast du ne halbwegs aktuelle Version von deconz laufen? Also ich meine die Software von Dresden Elektronik und nicht den Adapter im ioBroker. Ich hatte mal Probleme mit dem Aqara Würfel, das lag aber an ner zu alten Version von deconz. -
@siggi85 sagte in [Aufruf] deConz Adapter Testen 1.1.2:
@CKMartens Bist du nah am Conbee dran? Ggf. könnte das helfen?! [...]
Hast du ne halbwegs aktuelle Version von deconz laufen? Also ich meine die Software von Dresden Elektronik und nicht den Adapter im ioBroker. [...]Hallo Siggi85,
ich bin direkt mit den Sensoren am Stick dran (ca. 2cm weg). Das sollte funktionieren
Und auf dem Conbee Stick läuft die aktuelle Firmware von Dresden Elektronik. Das sollte auch funktionieren.
Im Gesichtsbuch wurde mir geraten mal den Kontakt mit dem Magneten auszulösen beim anlernen. Das werde ich auch noch probieren. Wie gesagt, er erkennt und lernt alles an, nur die Fensterkontakte nicht. Weiß da echt nicht mehr weiter. -
@CKMartens sagte in [Aufruf] deConz Adapter Testen 1.1.2:
Und auf dem Conbee Stick läuft die aktuelle Firmware von Dresden Elektronik. Das sollte auch funktionieren.
Das habe ich damals auch gedacht, weil ich die Software von der Dresden Eletronik Seite heruntergeladen habe. Die aktuellsten Versionen bekommt an aber von Github. Hier aber am besten nach stable Versionen gucken.
Im Gesichtsbuch wurde mir geraten mal den Kontakt mit dem Magneten auszulösen beim anlernen.
Das könnte auch klappen. Falls das auch nichts bringt kannst du dich ja zur Not mal an DE wenden.
-
@CKMartens sagte in [Aufruf] deConz Adapter Testen 1.1.2
Im Gesichtsbuch wurde mir geraten mal den Kontakt mit dem Magneten auszulösen beim anlernen. Das werde ich auch noch probieren.
Genau das war die Lösung. Einmal den Magnet hingehalten und Conbee hat den Sensor sofort erkannt.
-
Ich fände es cool wenn der Adapter beim Xiaomi Vibrationssensor noch die X Y Z die in einem Objekt sind verteilen könnte.
Hab mir jetzt aber erstmal Manuell geholfen -
Edit: Falscher Beitrag
-
So. Ich habe mich nun mal an das Update von 0.4.0 > 1.1.2 gemacht.
Wie bereits erwähnt, ist es nötig, alle Logging Datenpunkte neu zu setzen. Das hängt damit zusammen, weil man den Objekt Ordner Deconz vor dem update löschen sollte.
Dabei werden auch alle Datenpunkte die sonst geloggt wurden, in meinem Falle via mySQL gelöscht.
Nun gibt es die Möglichkeit in den neu erstellten Datenpunkten, nach dem Update, jeweils das Logging zu aktivieren und einen Alias mit dem alten Namen einzufügen.
Da ich das allerdings nur für eine Notlösung halte, habe ich mich auf der Suche nach einer anderen Lösung gemacht.Anbei nun mein "Lösungsansatz" / Tutorial.
Vorher sei gesagt: Keine Gewehr! Alles auf eigener Gefahr. Macht Backups! Am besten vom kompletten System. In jedem Falle aber von der Datenbank und von ioBroker. Überprüft ob die Backups funktionieren!Benötigte Sachen:
Zeit, Gedult.
HeidiSQL > ein Datenbank tool. Ich betreibe es auf meinem iMac via Virtualmachine in Win7.In ioBroker den mySQL Adapter stoppen.
HeidiSQL installieren und auf die Datenbank des RaspberryPis einloggen.
Im Reiter SSH Tunnel
Putty ggf. Downloaden und Pfad auswählen.
SSHHOST und Port: IP Adresse des RaspberryPi
SSH Passwort des Raspi
Im Reiter Einstellungen:
Verbindungstyp: MariaDB or mySQL SSHTunnel wählen.
IP: localhost
Benutzername und Passwort der Datenbank eingeben.
So sollte es für gewöhnlich Funktionieren.Als nächstes seht ihr auf der linken Seite eure Datenbank (ioBroker).
Wenn ihr diese öffnet findet ihr dort die Datenbank "datapoints","sources","ts_bool","ts_number","ts_string"Über den Reiter Datei / Neuer Query Tab erstellt ihr eine neue Abfrage.
In das Abfrage Fenster schreibt ihr folgenden Befehl:
CREATE TABLE datapointsBak AS SELECT * FROM datapoints;
Abfrage ausführen in dem ihr auf den blauen Pfeil in der oberen Symbolleiste drückt.
Zur Sicherheit nun eine Kontrolle:
Setzt ein "#" vor "CREATE TABLE" um diese Zeile zu deaktivieren und fügt in der nächsten Zeile folgenden Code ein.SELECT * from datapoints WHERE NAME LIKE '%deconz%' ;
Abfrage ausführen.
und:SELECT * from datapointsBak WHERE NAME LIKE '%deconz%' ;
Wieder ein "#" vor der ersten Codeeingabe setzen und die zweite Eingabe ausführen.Normalerweise müssten diese beiden Tabellen nun identisch aussehen.
In meinem Falle waren für mich vor allem die Xiaomi Sensoren interessant. Deshalb kommt nun die eigentlich Änderung.
Wir geben den alten Datenpunkten den neuen Namen den der iobroker deconz Adapter nun vergibt. Dadurch haben wir kein Alias beim Logging mehr nötig.Achtung ab jetzt ändern wir etwas an euren bestehenden Daten!
"#" vor den oberen Code setzen und in der nächsten Zeile:
UPDATE datapoints SET NAME = REPLACE(NAME,'Sensor_','Sensors.') WHERE NAME LIKE '%Sensor_%' ;
einfügen und ausführen.
Damit ändern wir alle Datenpunkte die "Sensor_XX" heißen in "Sensors.XX".
Zur Kontrolle ob es funktioniert hat, kann nun gerne noch einmal:
SELECT * from datapoints WHERE NAME LIKE '%deconz%' ;
in der Abfrage ausgeführt werden. Vorher unbedingt daran denken, wieder ein "#" vor "UPDATE" zusetzen.
Sollte irgendetwas schief gelaufen sein, lässt sich die veränderte Datenbank mit dem Bakup "datapointsBak" wiederherstellen. Dazu bitte Google benutzen.
Fürs erste sind wir hier nun Fertig.
-
In ioBroker den deconzAdapter Stoppen und unter Objekte den Ordner deconz.0 löschen.
-
deconz Adapter updaten.
-
Ein neues Javaskript im Skripteditor erstellen.
Folgenden "quick and dirty" Code einfügen:
var array = []; sendTo('sql.0', 'query', 'SELECT NAME from iobroker.datapoints WHERE NAME LIKE \'%deconz%\'', function (result) { console.log('Rows: ' + JSON.stringify(result.result)); if (result.error) { console.error(result.error); console.log("Das ist ein Error!!"); } else { // show result console.log("Hat geklappt!!"); console.log('Rows: ' + JSON.stringify(result.result)); array = JSON.parse(JSON.stringify(result.result)); //console.log("array: " + array); // log('Type: ' + array[Object.keys(array)[0]].NAME); for (var j = 0; j < array.length; j++) { rand = Math.floor((Math.random() * 300) + 1); //Debounce Random log('Type: ' + array[Object.keys(array)[j]].NAME); sendTo('sql.0', 'enableHistory', { id: array[Object.keys(array)[j]].NAME, options: { changesOnly: true, // Nur Änderungen Speichern debounce: rand, retention: 63072000, // 2 Jahre changesMinDelta: 0, aliasId: "" } }, function (result) { if (result.error) { console.log(result.error); } if (result.success) { //successfull enabled } }); } } });
-
Speichern! Der Code dient dazu, auszulesen welche Datenpunkte in mySQL für deconz gespeichert sind und diese wieder fürs Logging zu aktivieren. Die Werte können gerne nach den eigenen Wünschen angepasst werden. Noch nicht ausführen!
-
deconz Adapter v 1.2.0 starten und warten bis alle Daten geladen sind.
-
Nun müsstet ihr unter Objekte die neue Ordnerstruktur sehen.
-
mySQL Adapter starten und warten bis er vollständig gestartet hat.
-
Das JavaSkript starten.
-
Im Log müsstet ihr nachvollziehen können was nun passiert.
-
Unter Objekte müsstet ihr nun sehen, dass wieder die alten Datenpunkte fürs Logging aktiviert wurden.
-
Sollten neue leere Ordner oder Datenpunkte durch das Skript erstellt worden sein, liegt es daran, dass sich in der Datenbank diese "Leichen" befunden haben. Ihr könnt sie für gewöhnlich einfach löschen.
-
Skript deaktivieren.
-
Nun müsst ihr evtl. noch die Daten in VIS, FLOT, JAVASKRIPT oder YAHKA anpassen.
Sollte alles wie gewünscht Funktionieren, solltet ihr ein neues Backup eures Systems erstellen und könnt die "datapointsBak" Tabelle aus eurer Datenbank löschen.
Viel Erfolg.
-
-
@Kugelkopf sagte in [Aufruf] deConz Adapter Testen 1.1.2:
So. Ich habe mich nun mal an das Update von 0.4.0 > 1.2.0 gemacht.
1.2.0?
-
@Arnulf 1.1.2 meinte ich natürlich! Es war schon sehr spät
-
@Jey-Cee Moin!! Ich weiß garnicht, ob du es schon in der letzten Version integriert hattest, und es dresden elektronik wieder geändert wurde... aber wäre es noch möglich, dass man die Duration von den Xiaomi/Aqara PIR Sensoren ändern kann? Die URL Dazu wäre:
curl -X PUT -d '{"duration":5 }' -s http://PHOSCON_IP:8080/api/APICODE/sensors/18/config
In dem Falle also für den Sensor mit der ID 18 und einer Duration von 5 Sek.
Und vielleicht als kleiner Tipp, für alle, die ihre Xiaomi / Aqara Sensoren Hardwaretechnisch beschleunigen wollen:
Aqara PIR Sensor Hardware Hack:
https://community.smartthings.com/t/making-xiaomi-motion-sensor-a-super-motion-sensor/139806
Hab es selbst ausprobiert, es funktioniert. -
@Kugelkopf ich bin der Meinung ich hab das schon eingebaut. Werde bei Gelegenheit nach sehen.
-
So.
Endlich kamen die PIR aus Chinaland und ich konnte die Hardwaremodifikation vornehmen.
War einfacher als befürchtet.
Und die PIR sind sooo niedlich. Nix im Vergleich zu den Sonoff-Riesen.Jetzt alber mal zu meinen Fragen:
Seit wann ist die Baumstruktur bei den Objekten geändert?
Ich habe noch alte Objekte , die sich Sensor_1, Sensor_2... Sensor_n nennen.
Ich vermute, das sind die Alten.Dann gibt es einen Knoten mit "Sensors"
Da sind jetzt alle Sensoren durchnummeriert eingehängt.
Ich vermute, das ist jetzt neu.Wie auch schon bei den "Zauberwürfeln" werden mehrere IDs für den PIR generiert.
Das ist immer noch unschön.
In der Deconz-Software wird der Sensor als ein Gerät erkannt.
Im Adapter erscheint er nun als 3 Geräte.
Und unter jedem ID-Knoten gibt es Objekte. Und die sind noch nicht einmal eindeutig sortiert.
So ist "battery" bei allen Knoten zu finden. "tampered" nur bei einem.Das macht es etwas unübersichtlich, weil ich nicht weiß, welchen der Objekte ich nun verwenden muss.
Ist es nicht möglich, in einer zukünftigen Adapter-Version die Objekte so zusammen zu fassen, dass ein Gerät auch nur unter einem ID-Knoten zu finden ist?