NEWS
Liste der Homematic Geräte erstellen
-
Ich stelle das mal unter OffTopic ein, ggf. schiebe ich es dann nach js/Blockly.
Ich würde nach zig Umzügen meiner CCU1 bis jetzt zur piVCCU gerne einmal alles neu aufsetzen, da anscheinend etliche Leichen von Programmen und ggf. Geräten existieren.
Dazu müsste ich alle Geräte ablernen und in der piVCCU3 wieder anlernen.
Da einige Aktoren aber versteckt verbaut sind müsste ich das über die Seriennummer machen.Gleichzeitig wollte ich das nutzen und die Installation mal (für die Nachwelt) dokumentieren.
Also die Frage:
wie kann ich eine Liste erstellen (vorzugsweise Blockly) in der Name, Seriennummer und ggf. Raum enthalten ist.Das Sahnehäubchen wäre im csv-Format um es dann im Worksheet bearbeiten zu können
-
@Homoran sagte:
Name, Seriennummer und ggf. Raum enthalten ist.
Die Seriennummer ist in der ID enthalten. Möchtest Du den Gerätenamen? Dann erstelle in Blockly eine Javascript-Funktion mit Ergebnis. Suchen solltest Du mit dem $Selector nach einem Datenpunkt, der in jedem Gerät einmal existiert: "hm-rpc.*.0.UNREACH" ?
-
@paul53 sagte in Liste der Homematic Geräte erstellen:
Die Seriennummer ist in der ID enthalten
klar, die ID ist genauso gut
mit den paar HmIP habe ich mich noch gar nicht beschäftigt, wie man die anlernen kann@paul53 sagte in Liste der Homematic Geräte erstellen:
Möchtest Du den Gerätenamen?
Ja, nicht den der Kanäle
@paul53 sagte in Liste der Homematic Geräte erstellen:
nach einem Datenpunkt, der in jedem Gerät einmal existiert: "hm-rpc.*.0.UNREACH"
denke dass es den überall gibt, zumindest würde ich es mal damit versuchen
@paul53 sagte in Liste der Homematic Geräte erstellen:
Dann erstelle in Blockly eine Javascript-Funktion mit Ergebnis.
das sehe ich mir mal an - Danke!
-
@paul53 sagte in Liste der Homematic Geräte erstellen:
Suchen solltest Du mit dem $Selector
und genau so etwas hatte ich noch nie gemacht und wollte das jetzt mal lernen.
Hast du dazu auch noch einen Link?
EDIT:
habe mal was gebastelt:
Leider wird der Common name nicht mit ausgeworfen
EDIT2:
Bin ich blind oder ist in der Funktion der Aufruf doppelt?
function deviceName(id) { // id = Datenpunkt-ID id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name; //id = id.substring(0, id.lastIndexOf('.')); //if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name; }return 0;
Habe jetzt mal den vermeintlich doppelten Eintrag auskommentiert
-
@Homoran
Versuche es mal so:Inhalt der Funktion deviceName(id):
id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name; id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
Da man bei HomeMatic weiß, dass zwischen Device und Datenpunkt noch ein Kanal steht, kann man die zweite Zeile auch weglassen.
-
@Homoran sagte:
Habe jetzt mal den vermeintlich doppelten Eintrag auskommentiert
Das ist nicht doppelt, sondern verkürzt die ID um einen weiteren Bestandteil hinten, der durch einen Punkt getrennt ist.
Die Funktionsdeklaration ist doppelt: Durch Blockly und innerhalb der Funktion. -
@paul53 Danke für die Erklärung!
Den Block deviceName mit: id (idUnreach) kann ich nicht finden.
ist der erst ab einer bestimmten js-Version vorhanden? -
@Homoran sagte:
Den Block deviceName mit: id (idUnreach) kann ich nicht finden.
Das ist eine Javascript-Funktion mit Ergebnis mit Umbenennung von "etwas tun" nach "deviceName". Die Funktion kann erst verwendet werden, nachdem sie erstellt wurde.
-
@paul53
du hängst mich ab - ist aber erst einmal gut so!
Da kann ich mich besser reindenken.@paul53 sagte in Liste der Homematic Geräte erstellen:
mit Umbenennung von "etwas tun" nach "deviceName"
Das hatte ich, aber die Variable nicht drin
Jetzt läuft "etwas", aber immer noch kein common name
Die Funktion ist natürlich wieder vollständig -
-
@paul53 sagte in Liste der Homematic Geräte erstellen:
Die Funktion liefert immer 0 zurück.
Danke für den Tritt gegens Schienbein
Natürlich tut sie das wenn man das return(0) nicht löschtLäuft jetzt.
Ich will dann mal sehen, wie ich damit weiterkomme
-
Habe dann zur Plausibilität mal hochzählen lassen:
127 sah erst einmal brauchbar aus, der Signaturgenerator von Teddy sagt aber:
613 Kanäle in 135 Geräten:
-
@Homoran
8 Geräte, die kein "0.UNREACH" haben ? -
@paul53 sagte in Liste der Homematic Geräte erstellen:
@Homoran
8 Geräte, die kein "0.UNREACH" haben ?keine Ahnung.
2 habe ich inzwischen gefunden, auf der Testinstanz hatte ich wired nicht aktiv, die letzten 6 könnten CuxD Geräte sein, weiß aber im Moment nicht ob das so viele waren.EDIT: laut CuxD gibt es 5 Geräte
-
-
@paul53 sagte in Liste der Homematic Geräte erstellen:
@Homoran sagte:
laut CuxD gibt es 5 Geräte
Dann fehlt ja nur noch ein Gerät
Genau - das Risiko nehme ich in Kauf
Gefunden!!!
die virtuellen Kanäe BidCos_RF!Super!
-
Jetzt geht es noch um das Sahnehäubchen
(und die Kirsche darauf): kann man auch den Raum auslesen?Wichtiger ist jedoch wie ich es "maschinenlesbar" hinbekomme
Ich bekomme keinen Zeilenumbruch hin um es in Open office zeilenweise einlesen zu können
-
@Homoran sagte:
Ich bekomme keinen Zeilenumbruch hin
-
@paul53 <br> habe ich auch schon gemacht, wird aber nicht als Zeilenumbruch erkannt
Habe es dann im Notepad++ eingelesen und manuell nach <br>, gesucht und ENTER gedrückt127x f3 - ENTER und fertig
-
@Homoran sagte:
wird aber nicht als Zeilenumbruch erkannt
Bei mir macht die Log-Ausgabe die Zeilenumbrüche. Wenn ich die Log-Ausgabe in Notepad++ einfüge und anschließend als CSV-Datei abspeichere, kann ich es sofort als Tabelle einlesen.