Gute zu wissen, danke!
Beiträge von 0x5352
-
-
Sicher, dass https funktioniert oder meinst du http?
Ich habe es auch schon für Node Red in Abhängigkeit der Uptime umgesetzt gehabt (ohne Motion, ich habe keinen).
Ah, vertippt. Ich meine natürlich http, aber das s kommt aus Gewohnheit schon immer mit
-
Mit Signal hast Du mich neugierig gemacht. Bislang las ich immer es gibt keine Chat-Bots bei Signal!?
Also was fertiges für den ioBroker gibt es derzeit nicht. Aber mittels "signal-cli" kann man bereits Nachrichten auf Kommandozeile senden. Dann muss der ioBroker nur noch "EXEC" berechtigt werden damit er Kommandos im System ausführen kann.
Dann gibt es 2 Möglichkeiten: sich selber Nachrichten senden (Elzershark hat dazu ein Video bei YT) oder über eine Rufnummer Nachrichten senden. Letzteres bedarf natürlich einer freuen Nummer für die Registrierung (Festnetz geht auch).
Die Doku auf Git https://github.com/AsamK/signal-cli/wiki/Quickstart ist dabei schon ganz gut, gibt auch diverse Anleitungen dazu.
Wichtiger Hinweis: die Registrierung bei Signal muss auf deinem System mit dem User erfolgen unter dem der ioBroker läuft. Das ist nicht systemweit sondern Userabhängig
-
also nach >10 Tagen uptime wird ein Reboot durchgeführt, egal was der Shelly gerade macht?
Klappt das auch beim Motion wenn er schläft?
Da ich keinen Motion habe kann ich nur vermuten. Aber ich denke das klappt, denn der Reboot Befehl geht ja nicht über den ioBroker sondern direkt per http raus, also https://MOTIONIP/reboot. Von daher denke ich das wird klappen
-
Ich habe festgestellt das Shellys mit langer Laufzeit manchmal verzögert reagieren oder einfach nur rumzicken. Nachdem ich ein paar Blocklys gesehen habe die alle Shellys einzeln abfragen war mir das zu viel Arbeit
Leider kann Blockly nicht alles was JavaScript kann. Daher blieb mir nur der Weg über JS statt Blockly. Ich hoffe das ist auch okay hier
Code
Alles anzeigen// Wenn die Uptime über 10 Tagen liegt wird ein Adapter neu gestartet und die Rückmeldung per Signal versendet. // Es werden alle Shellys des Adapters per Schleife geprüft, IP muss nicht bekannt sein sondern wird ausgelesen. schedule('{"time":{"exactTime":true,"start":"nadir"},"period":{"days":1}}', async function () { var shellies = $('shelly.0.*.name'); var updateCount = 0; var uptime, result; console.log('Dem System sind ' + shellies.length + ' Geräte von Shelly bekannt.'); shellies.each( function(id, i) { var shellyId = id.split(".").slice(0,-1).join("."); require("request")((['http://',getState(shellyId + '.hostname').val,'/status'].join('')), async function (error, response, result) { uptime = getAttr((function () { try {return JSON.parse(result);} catch(e) {return {};}})(), 'uptime'); await wait(20); if (uptime >= 864000) { try { require("request")((['http://',getState(shellyId + '.hostname').val,'/reboot'].join('')), async function (error, response, result) { exec((['signal-cli -u ABSENDERNUMMER send -m " ',getState(shellyId + '.name').val,' neu gestartet" EMPFÄNGERNUMMER'].join(''))); console.log((['Shelly ',getState(shellyId + '.name').val,' wurde neu gestartet'].join(''))); }).on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } } } ) } ) });
Das Script läuft regelmäßig und liest alle Adapter aus die unterhalb von Shelly.0. hängen. Wenn man mehrere Shelly Instanzen hat, muss das ganze halt angepasst werden....
Die Uptime wird vom Shelly ausgelesen, nicht aus dem ioBroker. Da ich die IP aus den ioBroker Daten abfrage läuft es auch mit DHCP Shellys ohne Probleme, sprich die IP darf sich auch ändern.
Nach dem Reboot bekomme ich eine Signal Nachricht welcher bzw. welche Adapter neu gestartet wurden. Die Signal Einrichtung darf jeder selber googeln
PS: Das Script ohne Zeittrigger läuft einwandfrei, mit Zeittrigger muss ich das erst bewähren
-
-
Hallo zusammen,
leider sind meine Rolladen im EG noch nicht mit neuen Motoren ausgestattet und ich kann nicht kalibrieren, sprich den Zustand im iOBroker abfragen.
Daher muss ich mit meinen Scripten etwas kreativ sein
Eigentlich gehts die Wohnzimmerrollade um 19:30 Uhr runter. Kann keiner mehr rein schauen
Aber jetzt wenns wieder früher Dunkel wird soll das natürlich wie auch die anderen zum Sonnenuntergang passieren. Da ich keine Lust habe immer wieder das Script anzupassen, sollen natürlich beide Optionen enthalten sein.
Ich habe also zuerst einen Astrotrigger (Auszug) der Januar bis April und Oktober bis Dezember ziehen soll
Code// Wohnzimmer if ((new Date().getMonth() + 1) <= 4 || (new Date().getMonth() + 1) >= 10) { setStateDelayed("shelly.0.SHSW-25#40F5202418C1#1.Relay0.Switch"/*Switch*/, true, 0, false); sendTo("whatsapp-cmb", "send", { text: 'Wohnzimmerollade herunter gefahren Sonnenuntergang!' }); console.log('Rollade Wohnzimmer wurde runter gefahren'); }
Und dann einen simplen Cron Eintrag für 19:30 Uhr der die restlichen Monate abdeckt:
Codeschedule('{"time":{"exactTime":true,"start":"19:30"},"period":{"days":1}}', async function () { // Wohnzimmer if ((new Date().getMonth() + 1) >= 5 || (new Date().getMonth() + 1) <= 9) { setState("shelly.0.SHSW-25#40F5202418C1#1.Relay0.Switch"/*Switch*/, true); sendTo("whatsapp-cmb", "send", { text: 'Wohnzimmerollade herunter gefahren nach Zeitplan' }); console.log('Rollade Wohnzimmer wurde runter gefahren'); } });
Leider habe ich aktuell den Effekt das die Rollade zum Sonnenuntergang runter fährt (erstes Script) und dann um 19:30 Uhr wieder hoch (zweites Script) ob wohl das gemäß Monatsbedingung nicht passieren dürfte.
Irgendwie sehe ich den Fehler aber gerade nicht, jemand eine Idee?
Ich würde ungern noch eine Variable mit dem Zustand einführen, wäre aber eine Option....
-
Daran musste ich mich auch erst gewöhnen. Bisher habe ich immer gedacht x% geschlossen. Aber iOBroker arbeitet anders herum, x% geöffnet.
Gewöhnt man sich aber schnell dran
-
Soweit ich weiß brauch es für Apple Homekit eine spzielle Firmware: https://github.com/mongoose-os-apps/shelly-homekit
-
Nur zum Verständnis:
Du möchtest den vorhandenen Schalter mit einem Shelly verbinden, der schaltet den Storm zum Lampenventilator an oder ab.
Und hinter diesem soll dann noch ein Shelly, der die Lampen an oder ab schaltet?
Dann ist der Shelly B hinter dem Shelly A aber aus solange Shelly A nicht angeschaltet ist.....
-
Nun erreiche ich den Shelly nicht über die IP Adresse und weiß derzeit nicht, wie ich daraus einen "Serien-Lichtschalter" mache...
Wie das? Du versuchst aber nicht die 192.168.33.1 wie bei der Einrichtung oder?
Ist schon eine IP aus deinem Netzwerk? Schon auf dem Router nachgesehen?
-
Die Rolladen sollen autark fahren, also jeweils einer pro Wippe oder gleichzeitig?
Bei gleichzeitig wäre es sonst auch eine Möglichkeit den Schalter nur an einen Shelly anzuschließen und den zweiten Shelly für den zweiten Rolladen per URLs zu schalten.
Also wenn per Schalter Rollade 1 runter gefahren wird über eine Action auf den zweiten runter fahren.
-
Ah, das Thema hatten wir letztens schon mal. Viel Spaß beim lesen
wo sind die Facebook User, Shelly darf nicht in bzw für Sprechanlagen verbaut werden? Link im Text
-
Zielsetzung:
Das WLAN in der Garage ist nicht so der Hit, aber bevor ich weitere an der WLAN Infrastruktur arbeite wollte ich mal das Verhalten bzw. den Empfang des Shelly1 in der Garage überwachen. Jedesmal wenn sich der Zustand ändert bekomme ich eine Telegram Nachricht
Zusätzlich wird der Wechsel auch ins Log geschrieben.
Die erforderlichen Werte findet man zu jedem Shelly und "Objekte"
Blockly
Code
Alles anzeigen<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="zb}A;|BOkF}M%KT}/3)2" x="-187" y="38"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Nlr`5V=`fb9pJhx}YA^("> <field name="oid">shelly.0.SHSW-1#E09806A99449#1.online</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="l+87~T[}Fp@TDXU5Oha#"> <value name="IF0"> <block type="logic_compare" id="y}6[0AF`[-^zVf/NkIyS"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="TbX4WFmRet=`?T9OxH,I"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="[5:oLyr=j@yOm?p~s-_7"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="UUK]Q(Suy)Bdo`W|gU:0"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="-C`r+8`iC,5FzJB+9[#c"> <field name="TEXT">Garage online</field> </shadow> <block type="text_join" id="RGwrttoo[Pk8CE)oiH*c"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="Iy5(~^3sWt=fU]+?=~ig"> <field name="TEXT">Garage online, Empfang</field> </block> </value> <value name="ADD1"> <block type="get_value" id="TxoH!:b#2CelHcw!$?^C"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#E09806A99449#1.rssi</field> </block> </value> </block> </value> <next> <block type="debug" id="!g-3*8()pdW{kTz@~_Z~"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="NzVxrZQ9`+Pus+8fu-F5"> <field name="TEXT">Garage online</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="G*Ho$/b1kUet]7bZX{lQ"> <value name="IF0"> <block type="logic_compare" id="[5}tfBvh*f)o11^/toOp"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="9|8Y_B}69)`HP8DQe3v2"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="xQ*j3%]ez#su~v,0KPED"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="V)ooY5a34/j]Px7k]Ovu"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="[Ptq4!C+K;AQ:Q%nc%[="> <field name="TEXT">Garage offline</field> </shadow> <block type="text_join" id="b)L=]$`tIonnFl=M~Hw!"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="ZS%C8aQ4d7De=+e*F8JG"> <field name="TEXT">Garage offline, Empfang</field> </block> </value> <value name="ADD1"> <block type="get_value" id="TGXm`c#MxH:j/91==/W3"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#E09806A99449#1.rssi</field> </block> </value> </block> </value> <next> <block type="debug" id="CB5A1lPVPY*Hkstc:%1X"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Tt^8C+`cSEP4y)cujMhZ"> <field name="TEXT">Garage offline</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
Javascript Export
JavaScript
Alles anzeigenon({id: 'shelly.0.SHSW-1#E09806A99449#1.online', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "") == true) { sendTo("telegram", "send", { text: ('Garage online, Empfang' + String(getState("shelly.0.SHSW-1#E09806A99449#1.rssi").val)) }); console.log('Garage online'); } if ((obj.state ? obj.state.val : "") == false) { sendTo("telegram", "send", { text: ('Garage offline, Empfang' + String(getState("shelly.0.SHSW-1#E09806A99449#1.rssi").val)) }); console.log('Garage offline'); } });
-
Ich finde das mit dem teilen eine super Sache. Schön wären dann natürlich kommentierte Scripte die die Funktion erläutern.
Nicht jeder versteht sofort jedes Script
-
Ohne deine Motoren zu kennen:
Der Shelly 2.5 braucht keinen Schalter und kommt direkt an die Motoren. Wenn Schalter gewünscht sind, werden diese an den Shelly angeschlossen.
-
Ich habs gerade mal bei mir getestet und die CSV in LibreOffice importiert.
Die Zahlen passen, heißt ich denke das ist ein Problem des Zellen bzw. Spaltenformats in deiner Excel.
Formatiere die Spalte doch mal als Zahl, oder ist das schon?
-
-
Für Alexa müssen die Shellys in die Cloud.
Und dann für die Alexa den Shelly Skill aktivieren: https://www.amazon.de/Allterco-Robot…d/dp/B072R2G3RL
Natürlich muss man durch einloggen noch die Verbindung herstellen, aber das sagt der Skill schon was er braucht
Und dann kann man in der Alexa App nach neuen Geräten suchen und findet die Shellys.
-