Hallo, kann mir evtl jemand helfen meine Winmatic in den Homekit Adapter Yahka zu integrieren.
Welchen Yahka/Service muss man dafür nutzen
NEWS
Latest posts made by noleck123
-
Yahka Homekit - Winmatic einbinden
-
RE: Klingelsensor loggen
Okay das mit dem Klingelbild habe ich auch aber das wird bei mir auf dem Tablet zuhause angezeigt. Deshalb wollte ich gern, wenn ich nach Hause komme eine Benachrichtigung .. Hallo schön das Du zuhause bist.. Es hat heute um 12:00 Uhr an der Tür geklingelt .. Es liegt Post im Briefkasten usw…
-
Klingelsensor loggen
Hallo,
ich würde gern meinen Klingelsensor loggen, also Aufzeichnen wann und um welche Uhrzeit geklingelt wurde.
Die Informationen würde ich dann gern im Alexa Begrüßungscript benutzen..
Hat vlt jemand eine Idee wie man das umsetzen könnte?
-
RE: [gelöst] Lichter zählen Script läuft nicht
Hallo ich habe das Fenster / Zählen Script und das Lichter Zählen Script Installiert.. Funktioniert soweit ganz gut, nur wird die Eingeschaltete Lichter / Fenster Variable nicht richtig angezeigt bzw ausgewertet..
/* Status Zahl Lichter zählt die Lichter in allen Räumen und meldet die Eingeschalteten namentlich Daten kommen vom Gewerk "licht" erstellt: 17.06.2015 nach diesem Vorbild: viewtopic.php?f=21&t=869&sid=f9ba5657489ff431a1990884f90779c1#p6564 23.06.2015 globale Variablendefinition zählen_Lichter.textLichterAn fehlte und wurde hinzugefügt Log Ausgabe auskommentiert 05.08.2015 STATE aus der Ausgabe entfernt nach Idee von stephan61 http://forum.iobroker.org/viewtopic.php ... t=20#p9267 24.03.2016 keine Anzeigen von virtuellen Kanälen mehr (in Abhängigkeit der Abfrage des Namens) 06.05.2016 Datenpunkt für Ansagen zugefügt 02.07.2016 abgeschaltet, da Fehler 03.07.2016 Zähl-Funktion getrennt nach Schalter und Dimmer search statt indexOf und RegEx für Suche nach Virtuellen Kanälen 27.11.2016 Verschoben in Status Code optimiert 23.12.2016 Räume eingebaut */ var logging = true; var idAnzahlEin = 'javascript.0.Status.Lichter.Anzahl_ein', idAnzahl = 'javascript.0.Status.Lichter.Anzahl', idText = 'javascript.0.Status.Lichter.Text', idRaum = 'javascript.0.Status.Lichter.Raum', // <---- NEU idAnsage = 'javascript.0.Status.Lichter.Ansage'; // Ab hier nix mehr ändern createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter type: 'number', name: 'Anzahl aller Lichter', min: 0, def: 0, role: 'value' }); createState(idAnzahlEin, { // Anzahl der Lichter, die auf sind als Variable unter Javascript.0 anlegen type: 'number', name: 'Anzahl der eingeschalteten Lichter', min: 0, def: 0, role: 'value' }); createState(idText, { // Anzahl der brennenden Lichter und deren Namen als Variable unter Javascript.0 anlegen type: 'string', name: 'Eingeschaltete Lichter', desc: 'Namen der eingeschalteten Lichter', def: ' ', role: 'value' }); createState(idAnsage, { type: 'string', name: 'Eingeschaltete Lichter (Ansage)', desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)', def: ' ', role: 'value' }); createState(idRaum, { // Räume, in denen Lichter brennen // <---- NEU type: 'string', name: 'Räume mit eingeschalteten Lichter', desc: 'Namen der Räume, in denen Lichter eingeschaltet sind', def: ' ', role: 'value' }); var cacheSelectorState = $('channel[state.id=*.STATE](functions="Licht")'); // Gewerk licht var cacheSelectorLevel = $('channel[state.id=*.level](functions="Licht")'); var cacheSelectorPOWER = $('channel[state.id=*.POWER](functions="Licht")'); // Sonoff Lampen (müssen im Gewerk Licht sein) function checkDevices(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk licht auf 0 var anzahlLichterAn = 0; var anzahlLichter = 0; var textLichterAn = []; var textRaum = []; if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } */ if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage }); if (logging) log('#### DIMMER ##### '); cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.LEVEL abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".LEVEL")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status + '%'); } */ if (parseFloat(status) > 0) { // Wenn Dimmwert über 0 ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // Ende Abfrage VK }); if (logging) { log('++++++ Lichter Anzahl ++++ '); log('#### SCHALTER ##### '); } cacheSelectorPOWER.each(function (id, i) { // Schleife für jedes gefundenen Element *.POWER im Gewerk Licht var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf("POWER")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); // <---- NEU // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen) // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { /* if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } */ if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt ++anzahlLichterAn; textLichterAn.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // <---- NEU } ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status // } // ENDE VK-Abfrage }); // Array mit Lichternamen sortieren textLichterAn.sort(); textRaum.sort(); // <---- NEU // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben if (logging) log("Text: " + textLichterAn); if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn); // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS) setState(idText, textLichterAn.join(', ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht // setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU } // Trigger cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk licht if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.LEVEL im Gewerk licht if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); cacheSelectorPOWER.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk licht if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); function main() { setTimeout(function(){ if (logging) log('Auslöser Skriptstart'); checkDevices(); }, 2000); } main(); // Skriptstart-Auslöser // Aufbereitung für Ansage function strip_tags(data) { var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " "); return(rueckgabe); } on(idText, function (obj) { var text = obj.state.val; text = (getState(idAnzahl).val > 0 ) ? 'Lichter eingeschaltet: ' + strip_tags(text) : 'Alle Lichter sind ausgeschaltet'; setState(idAnsage, text); });
// Status Fenster. Das Script zählt alle Fenster im Gewerk Fenster (Aufzählungen-Funktion) // Telegramnachricht bei Abwesenheit wenn sich der Fensterstatus ändert. Bei Anwesenheit in der Homezone keine Nachricht senden. // Anwesenheit Datenpunkte separat erstellt und durch die Adapter google-sharedlocation und Places geschaltet var logging = true; var idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf', idAnzahl = 'javascript.0.Status.Fenster.Anzahl', idText = 'javascript.0.Status.Fenster.Text', idRaum = 'javascript.0.Status.Fenster.Raum', idAnsage = 'javascript.0.Status.Fenster.Ansage'; // Ab hier nix mehr ändern createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Fenster type: 'number', name: 'Anzahl aller Fenster', min: 0, def: 0, role: 'value' }); createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen type: 'number', name: 'Anzahl der geoeffneten Fenster', min: 0, def: 0, role: 'value' }); createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen als Variable unter Javascript.0 anlegen type: 'string', name: 'geoeffnete Fenster', desc: 'Namen der geoeffneten Fenster', def: ' ', role: 'value' }); createState(idAnsage, { type: 'string', name: 'geoeffnete Fenster (Ansage)', desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)', def: ' ', role: 'value' }); createState(idRaum, { // Räume, in denen Fenster geoeffnet sind type: 'string', name: 'Räume mit geoeffneten Fenster', desc: 'Namen der Räume, in denen Fenster geoeffnet sind', def: ' ', role: 'value' }); var cacheSelectorState = $('channel[state.id=*.STATE](functions="Fenster")'); // Gewerk Fenster function checkDevices(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fenster auf 0 var anzahlFensterAuf = 0; var anzahlFenster = 0; var textFensterAuf = []; var textRaum = []; if (logging) { log('++++++ Fenster Anzahl ++++ '); log('#### SCHALTER ##### '); } cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Fenster var obj = getObject(id); var name = getObject(id).common.name; var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen var raumname = getObject(id, "rooms"); if (logging) { log('-------'); log('Kanal: ' + name); log('Status: ' + status); } if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt ++anzahlFensterAuf; textFensterAuf.push(devicename); // Zu Array hinzufügen textRaum.push(raumname.enumNames); // } ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status }); textRaum = deleteDuplicates(textRaum); // Array mit Fensternamen sortieren textFensterAuf.sort(); textRaum.sort(); // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben if (logging) log("Text: " + textFensterAuf); if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf); // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS) setState(idText, textFensterAuf.join(',\nund\n')); // Schreibt die aktuelle Namen der geoeffneten Fenster setState(idAnzahlAuf, textFensterAuf.length); // Schreibt die aktuelle Anzahl der geoeffneten Fenster setState(idAnzahl, anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fenster // setState(idRaum, textRaum.join(', ')); // Räume, in denen Fenster geoeffnet sind setState(idRaum, textRaum.join(',\nund\n')); // Räume, in denen Fenster geoeffnet sind } // Trigger cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Fenster if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat checkDevices(); }); function main() { setTimeout(function() { if (logging) log('Auslöser Skriptstart'); checkDevices(); }, 2000); } main(); // Skriptstart-Auslöser // Aufbereitung für Ansage function strip_tags(data) { var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " "); return (rueckgabe); } on(idText, function(obj) { var text = obj.state.val; text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen'; setState(idAnsage, text); }); // Bei Anwesenheit zu Hause keine Telegramnachricht---Bei Abwesenheit sendet Telegram eine Nachricht // on({id: 'javascript.0.Status.Fenster.Ansage', change: "ne"}, function (obj) { // var value = obj.state.val; // var oldValue = obj.oldState.val; // if (getState("javascript.0.Anwesenheit.Heiko.Home.Heiko_Home").val === false) { // sendTo("telegram", "send", { // text: getState("javascript.0.Status.Fenster.Ansage").val, // disable_notification: true // ohne Ton am Handy //}); //} //});
-
RE: Skriptsammlung für den neuen ALEXA2.0 Adapter
Hallo ich habe das Fenster / Zählen Script und das Lichter Zählen Script Installiert.. Funktioniert soweit ganz gut, nur wird die Eingeschaltete Lichter / Fenster Variable nicht richtig angezeigt bzw ausgewertet..
! /* Status Zahl Lichter
! zählt die Lichter in allen Räumen und meldet die Eingeschalteten namentlich
! Daten kommen vom Gewerk "licht"
! erstellt: 17.06.2015 nach diesem Vorbild: viewtopic.php?f=21&t=869&sid=f9ba5657489ff431a1990884f90779c1#p6564
! 23.06.2015 globale Variablendefinition zählen_Lichter.textLichterAn fehlte und wurde hinzugefügt
! Log Ausgabe auskommentiert
! 05.08.2015 STATE aus der Ausgabe entfernt nach Idee von stephan61 http://forum.iobroker.org/viewtopic.php … t=20#p9267
! 24.03.2016 keine Anzeigen von virtuellen Kanälen mehr (in Abhängigkeit der Abfrage des Namens)
! 06.05.2016 Datenpunkt für Ansagen zugefügt
! 02.07.2016 abgeschaltet, da Fehler
! 03.07.2016 Zähl-Funktion getrennt nach Schalter und Dimmer
! search statt indexOf und RegEx für Suche nach Virtuellen Kanälen
! 27.11.2016 Verschoben in Status
! Code optimiert
! 23.12.2016 Räume eingebaut
! */
! var logging = true;
! var idAnzahlEin = 'javascript.0.Status.Lichter.Anzahl_ein',
! idAnzahl = 'javascript.0.Status.Lichter.Anzahl',
! idText = 'javascript.0.Status.Lichter.Text',
! idRaum = 'javascript.0.Status.Lichter.Raum', // <---- NEU
! idAnsage = 'javascript.0.Status.Lichter.Ansage';
! // Ab hier nix mehr ändern
! createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter
! type: 'number',
! name: 'Anzahl aller Lichter',
! min: 0,
! def: 0,
! role: 'value'
! });
! createState(idAnzahlEin, { // Anzahl der Lichter, die auf sind als Variable unter Javascript.0 anlegen
! type: 'number',
! name: 'Anzahl der eingeschalteten Lichter',
! min: 0,
! def: 0,
! role: 'value'
! });
! createState(idText, { // Anzahl der brennenden Lichter und deren Namen als Variable unter Javascript.0 anlegen
! type: 'string',
! name: 'Eingeschaltete Lichter',
! desc: 'Namen der eingeschalteten Lichter',
! def: ' ',
! role: 'value'
! });
! createState(idAnsage, {
! type: 'string',
! name: 'Eingeschaltete Lichter (Ansage)',
! desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)',
! def: ' ',
! role: 'value'
! });
! createState(idRaum, { // Räume, in denen Lichter brennen // <---- NEU
! type: 'string',
! name: 'Räume mit eingeschalteten Lichter',
! desc: 'Namen der Räume, in denen Lichter eingeschaltet sind',
! def: ' ',
! role: 'value'
! });
! var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk licht
! var cacheSelectorLevel = $('channelstate.id=*.level');
! var cacheSelectorPOWER = $('channelstate.id=*.POWER'); // Sonoff Lampen (müssen im Gewerk Licht sein)
! function checkDevices(obj) {
! // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk licht auf 0
! var anzahlLichterAn = 0;
! var anzahlLichter = 0;
! var textLichterAn = [];
! var textRaum = [];
! if (logging) {
! log('++++++ Lichter Anzahl ++++ ');
! log('#### SCHALTER ##### ');
! }
! cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Licht
! var obj = getObject(id);
! var name = getObject(id).common.name;
! var status = getState(id).val; // Zustand .STATE abfragen (jedes Element)
! var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
! var raumname = getObject(id, "rooms"); // <–-- NEU
! // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
! // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) {
! /
! if (logging) {
! log('-------');
! log('Kanal: ' + name);
! log('Status: ' + status);
! }
! */
! if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
! ++anzahlLichterAn;
! textLichterAn.push(devicename); // Zu Array hinzufügen
! textRaum.push(raumname.enumNames); // <---- NEU
! }
! ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
! // } // ENDE VK-Abfrage
! });
! if (logging) log('#### DIMMER ##### ');
! cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht
! var obj = getObject(id);
! var name = getObject(id).common.name;
! var status = getState(id).val; // Zustand .LEVEL abfragen (jedes Element)
! var devicename = name.substring(0, name.indexOf(".LEVEL")); //.state aus Text entfernen
! var raumname = getObject(id, "rooms"); // <---- NEU
! // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
! // if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten
! /
! if (logging) {
! log('-------');
! log('Kanal: ' + name);
! log('Status: ' + status + '%');
! }
! */
! if (parseFloat(status) > 0) { // Wenn Dimmwert über 0
! ++anzahlLichterAn;
! textLichterAn.push(devicename); // Zu Array hinzufügen
! textRaum.push(raumname.enumNames); // <---- NEU
! }
! ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
! // } // Ende Abfrage VK
! });
! if (logging) {
! log('++++++ Lichter Anzahl ++++ ');
! log('#### SCHALTER ##### ');
! }
! cacheSelectorPOWER.each(function (id, i) { // Schleife für jedes gefundenen Element *.POWER im Gewerk Licht
! var obj = getObject(id);
! var name = getObject(id).common.name;
! var status = getState(id).val; // Zustand .STATE abfragen (jedes Element)
! var devicename = name.substring(0, name.indexOf("POWER")); //.state aus Text entfernen
! var raumname = getObject(id, "rooms"); // <---- NEU
! // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
! // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) {
! /
! if (logging) {
! log('-------');
! log('Kanal: ' + name);
! log('Status: ' + status);
! }
! */
! if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
! ++anzahlLichterAn;
! textLichterAn.push(devicename); // Zu Array hinzufügen
! textRaum.push(raumname.enumNames); // <---- NEU
! }
! ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
! // } // ENDE VK-Abfrage
! });
! // Array mit Lichternamen sortieren
! textLichterAn.sort();
! textRaum.sort(); // <---- NEU
! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
! if (logging) log("Text: " + textLichterAn);
! if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn);
! // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
! setState(idText, textLichterAn.join(',
')); // Schreibt die aktuelle Namen der eingeschalteten Lichter
! setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
! setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
! // setState(idRaum, textRaum.join(',
')); // Räume, in denen Licht brennt // <---- NEU
! setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU
! }
! // Trigger
! cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk licht
! if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
! checkDevices();
! });
! cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.LEVEL im Gewerk licht
! if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
! checkDevices();
! });
! cacheSelectorPOWER.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk licht
! if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
! checkDevices();
! });
! function main() {
! setTimeout(function(){
! if (logging) log('Auslöser Skriptstart');
! checkDevices();
! }, 2000);
! }
! main(); // Skriptstart-Auslöser
! // Aufbereitung für Ansage
! function strip_tags(data) {
! var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
! return(rueckgabe);
! }
! on(idText, function (obj) {
! var text = obj.state.val;
! text = (getState(idAnzahl).val > 0 ) ? 'Lichter eingeschaltet: ' + strip_tags(text) : 'Alle Lichter sind ausgeschaltet';
! setState(idAnsage, text);
! });! // Status Fenster. Das Script zählt alle Fenster im Gewerk Fenster (Aufzählungen-Funktion)
! // Telegramnachricht bei Abwesenheit wenn sich der Fensterstatus ändert. Bei Anwesenheit in der Homezone keine Nachricht senden.
! // Anwesenheit Datenpunkte separat erstellt und durch die Adapter google-sharedlocation und Places geschaltet
! var logging = true;
! var
! idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf',
! idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
! idText = 'javascript.0.Status.Fenster.Text',
! idRaum = 'javascript.0.Status.Fenster.Raum',
! idAnsage = 'javascript.0.Status.Fenster.Ansage';
! // Ab hier nix mehr ändern
! createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Fenster
! type: 'number',
! name: 'Anzahl aller Fenster',
! min: 0,
! def: 0,
! role: 'value'
! });
! createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen
! type: 'number',
! name: 'Anzahl der geoeffneten Fenster',
! min: 0,
! def: 0,
! role: 'value'
! });
! createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen als Variable unter Javascript.0 anlegen
! type: 'string',
! name: 'geoeffnete Fenster',
! desc: 'Namen der geoeffneten Fenster',
! def: ' ',
! role: 'value'
! });
! createState(idAnsage, {
! type: 'string',
! name: 'geoeffnete Fenster (Ansage)',
! desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)',
! def: ' ',
! role: 'value'
! });
! createState(idRaum, { // Räume, in denen Fenster geoeffnet sind
! type: 'string',
! name: 'Räume mit geoeffneten Fenster',
! desc: 'Namen der Räume, in denen Fenster geoeffnet sind',
! def: ' ',
! role: 'value'
! });
! var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk Fenster
! function checkDevices(obj) {
! // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fenster auf 0
! var anzahlFensterAuf = 0;
! var anzahlFenster = 0;
! var textFensterAuf = [];
! var textRaum = [];
! if (logging) {
! log('++++++ Fenster Anzahl ++++ ');
! log('#### SCHALTER ##### ');
! }
! cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Fenster
! var obj = getObject(id);
! var name = getObject(id).common.name;
! var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
! var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
! var raumname = getObject(id, "rooms");
! if (logging) {
! log('–-----');
! log('Kanal: ' + name);
! log('Status: ' + status);
! }
! if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
! ++anzahlFensterAuf;
! textFensterAuf.push(devicename); // Zu Array hinzufügen
! textRaum.push(raumname.enumNames); //
! }
! ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status
! });
! textRaum = deleteDuplicates(textRaum);
! // Array mit Fensternamen sortieren
! textFensterAuf.sort();
! textRaum.sort();
! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben
! if (logging) log("Text: " + textFensterAuf);
! if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf);
! // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
! setState(idText, textFensterAuf.join(',\nund\n')); // Schreibt die aktuelle Namen der geoeffneten Fenster
! setState(idAnzahlAuf, textFensterAuf.length); // Schreibt die aktuelle Anzahl der geoeffneten Fenster
! setState(idAnzahl, anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fenster
! // setState(idRaum, textRaum.join(',
')); // Räume, in denen Fenster geoeffnet sind
! setState(idRaum, textRaum.join(',\nund\n')); // Räume, in denen Fenster geoeffnet sind
! }
! // Trigger
! cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Fenster
! if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
! checkDevices();
! });
! function main() {
! setTimeout(function() {
! if (logging) log('Auslöser Skriptstart');
! checkDevices();
! }, 2000);
! }
! main(); // Skriptstart-Auslöser
! // Aufbereitung für Ansage
! function strip_tags(data) {
! var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
! return (rueckgabe);
! }
! on(idText, function(obj) {
! var text = obj.state.val;
! text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen';
! setState(idAnsage, text);
! });
! // Bei Anwesenheit zu Hause keine Telegramnachricht–-Bei Abwesenheit sendet Telegram eine Nachricht
! // on({id: 'javascript.0.Status.Fenster.Ansage', change: "ne"}, function (obj) {
! // var value = obj.state.val;
! // var oldValue = obj.oldState.val;
! // if (getState("javascript.0.Anwesenheit.Heiko.Home.Heiko_Home").val === false) {
! // sendTo("telegram", "send", {
! // text: getState("javascript.0.Status.Fenster.Ansage").val,
! // disable_notification: true // ohne Ton am Handy
! //});
! //}
! //}); -
RE: Amazon Dash Adapter
ja daran liegt es nicht … Ich sitze quasi neben dem Router
-
RE: Amazon Dash Adapter
ja dauert wirklich so lange .. Ich kann aber nicht nachvollziehen warum das so ist..
-
Amazon Dash Adapter
Hallo, ich habe einen Amazon Dash Button installiert. Hat soweit alles funktioniert, wenn ich auf den Button drücke dann kommt das Signal im Iobroker erst nach 30 - 60 min an .. Hat vlt jemand eine Idee?
-
RE: IoBroker stürzt alle 20 Stunden ab
Also ohne Radar funktioniert es einwandfrei… Ich habe heute mal so ein Amazon Dash button installiert .. wurde erkannt (nach xxx Minuten) und wenn ich damit was steuern möchte (script) dauert es ewig bis der Befehl ankommt im Iobroker... so ist es auch bei Systemvariablen von Homematic .. alles dauert sehr lang .. Warum ist das so ?
-
RE: IoBroker stürzt alle 20 Stunden ab
Hy ,, ich habe den Radar Adapter mal abgeschalten.. bis jetzt lief der Iobrocker 25h .. leider steht nicht mehr im log .. bzw geht der Syslog nur bis 09:04 …
aber warum soll der Radar Adpater den Iobroker lahm legen ?