Beiträge von HoerMirAuf
-
-
Wow, hab's rausgefunden. Mit:
Cool !! Wieder was gelernt. Eckige Klammer .... ja klar, Array! Da bin ich nicht drauf gekommen.
-
Moin ..
mit Friendlyname mag es bei mir nicht klappen, da bleibt der Value leer (evtl weil der Friendlyname in Klammern ausgegeben wird) aber wenn Devicename auch geht?
-
Was genau soll die rule den machen ?
Der Syntax ist etwas durcheinander, da kein on - do - endon
meinst du sowas?
on var1#state=1 do backlog timer1 {"enable":1}; timer2 {"enable":1}; timer3 {"enable":0} ... endon
-
Hi.
Aktuell habe ich noch keine Idee wie ich einzelne Timer (z.B. Relais1 Timer1-10, und Relais Timer11-16) "enable" schalten könnte!
meinst du das?
Du kannst ganze Timer Parametrieren und auch aktivieren per konosle und damit auch per rule websend etc.:
Timer1 {"Enable":1,"Time":"02:23","Window":0,"Days":"--TW--S","Repeat":1,"Output":1,"Action":1}
es geht auch:
Timer1 {"Enable":0} bzw. Timer1 {"Enable":1}
-
Hi
ne du ...
In so einem Ruleset ... also Rule1 ist genau genommen das Rule-Set 1, werden die Rules zeilenweise abgearbeitet.
In der ersten rule (eine rule beginnt mit on und endet mit endon) wird der Power Wert in die variable 1 (var1) eingelesen.
Der Trigger ist eben tele-energy#power der die Rule auslöst und der Triggerwert ist immer in der jeweiligen variable %value% enthalten.
Die Zweite rule wird durch tele-bme280#temperatur gertriggert (ich hab halt BME280 am laufen deshalb hab ich den Trigger für die Temp als Beispiel genommen) und zusammen mit dem Inhalt der in der ersten rule in var1 geschrieben wurde an die URL übermittelt.
-
Gerne.
Du kannst natürlich jeden JSON Wert der in der Teleperiod aufgeführt wird parsen und senden.
Bsp.:
Coderule1 on tele-energy#power do websend [<url>]/MyLandingPage.php?LogEnergy=%value% endon on tele-bme280#temperature do websend [<url>]/MyLandingPage.php?LogTemp=%value% endon
Soll es in einem Webrequest gesendet und auf dem Server geparst werden, würde ich so ansetzen:
Coderule1 on tele-energy#power do var1 %value% endon on tele-bme280#temperature do websend [<url>]/MyLandingPage.php?LogPower=%var1%&LogTemp=%value% endon
P.S. Gibt es eigentlich ein Tutorial zur Tasmota-Programmierung? Oder habt ihr euer Wissen allein aus dem abstrakten Handbuch, das es auf Github gibt?
Ich kenn nur das auf Github. Vor Jahren hatten wir hier den Versuch das Ganze ins deutsch zu übersetzen aber Tasmota hat sich so rasant weiterentwickelt, das es einfach zu aufwendig ist das aktuell zu pflegen und ob es das dann verständlicher macht sei dahin gestellt.
Das Forum hier ist, denke ich ein sehr guter Ansatz sich mit Fragen in das Rule bzw. Script Thema einzuarbeiten
Ist eben learning by doing ... mit der Zeit kommt man dahinter wie das Ganze funktioniert ....
-
Moin.
kommt jetzt darauf an wie genau das JSON mit Deinem Energywert ausschaut.
Prinzipiell wird das so gemacht:
rule1 on tele-energy#power do websend [<url>]/MyLandingPage.php?LogEnergy=%value% endon
rule1 1
Jetzt wird der wert bei jeder teleperiod übertragen ... teleperiod ist standart auf 300 gesetzt (5 Minuten)
-
Moin.
Wenn ich mich richtig erinnere entspricht bei "Protocol:UNKNOWN" der Hash - Tag den empfangenen IR-Daten
Auswertung z.B. über Rules:
on irreceived#hash=0x0F25B3DA do <etwas> endon
da bin ich mir nicht sicher ob es nicht doch:on irreceived#data= ist
-
Moin.
das lässt sich recht einfach umsetzen:
einen Timer (Timer1) erstellen für Sonnenuntergang und als Aktion "Regel"
dasselbe (Timer2) für Sonnenuntergang + 1h
In der Konsole dann die Rule:
Coderule1 on clock#timer=1 do shutterposition1 50 endon on clock#timer=2 do shutterposition1 100 endon
rule aktivieren:
rule1 1
-
Moin.
was sagt den der Konsolen Output? Ist die Rule aktiviert? Am besten hier posten.
rule1 1
-
Du hast also 230V Dauerspannung an der Decke.
bindet sich ins WLAN ein, damit über APP und Sprachsteuerung ansteuerbar oder als Slave auch von einem anderen Shelly
Geht natürlich auch mit nem 433Mhz Sonoff Teil aber dann halt ohne dimmen.
EDIT:
was meinst du mit verbinden? Einen Shelly der vom 433MHZ Sonoff angesteuert wird? In der Theorie schon aber ich glaub nicht das das mit dimmen sauber geht. denn dimmen hängt ja davon ab wie lange dann der Schließer geschlossen ist und damit den Shelly dimmt. Das wirst in der Praxis nie genau hinbekommen. Ob das von einem anderen Shelly aus besser zu steuern ist, kann ich nicht sagen.
Allerdings hat der Shelly Dimmer sowas wie ne Nachtfunktion, ließ mal die Beschreibung auf der Shelly Seite durch.
Evtl. reicht es ja einfach nur zu schalten und Nachts wird weniger hell eingeschaltet. Was da die Original Shelly Firmware kann, kann ich auch nicht sagen.
-
was meinst du mit FUNK?
Der lässt sich vor Ort mit Tasten bedienen, bindet sich ins WLAN ein, damit über APP und Sprachsteuerung ansteuerbar oder als Slave auch von einem anderen Shelly ... SMART eben.
-
Hi.
spricht was gegen den Shelly Dimmer? Mit der Shelly Cloud auch mit Google Assistant einsetzbar.
-
Ah, Danke!
Hmmm .... ich glaub, da würde ich tatsächlich lieber ne HTML Seite ins Tasmota WebIF reinmodden.
Hier schon mal beschreiben:
BeitragRE: SonOff/Tasmota - zusätzliche Datei auf dem Webserver
Wie NoitaercX erwähnte eigentlich nur indem du die xdrv_01_webserver.ino moddest.
Therotisch könntest du dort (https://github.com/arendst/Sonoff…1_webserver.ino), Zeile 529 eine weitere Seite definieren:
WebServer->on("/tx", ShowTextFile);
und eben eine neue Funktion integrieren:
nach Zeile 2293 sowas in der Art einfügen:
(Quelltext, 13 Zeilen)
Keine Ahnung ob das funktioniert, kanns derzeit nicht testen
@NoitaercX: läßt sich eigener Code eigentlich auch im online Compiler verarbeiten?HoerMirAuf18. Juni 2019 um 13:40 Dazu im Gitpod Master Release (siehe Signatur) einfach in der Datei:
xdrv_01_9_webserver.ino ein paar Zeilen ergänzen:
z.B.:
Bei Zeile 570:
{ "xx", HTTP_ANY, HandleOwnSide },
Und dann bei ab Zeile 3216 folendes einfügen:
HTML
Alles anzeigenvoid HandleOwnSide(void) { if (!HttpCheckPriviledgedAccess()) { return; } WSContentSend_P(PSTR("<html><head><title>Get Fetch-Request</title></head><body>")); WSContentSend_P(PSTR("<script language='JavaScript'>")); WSContentSend_P(PSTR("function TogglePower(){ fetch('http://")); WSContentSend_P(PSTR("%_I"), (uint32_t)WiFi.localIP()); WSContentSend_P(PSTR("/cm?cmnd=power toggle').then(function(response) {")); WSContentSend_P(PSTR("response.text().then(function(text) {")); WSContentSend_P(PSTR("const Status = JSON.parse(text);")); WSContentSend_P(PSTR("document.getElementById('PowerValue').innerHTML = Status.POWER;")); WSContentSend_P(PSTR("});")); WSContentSend_P(PSTR("});")); WSContentSend_P(PSTR("};")); WSContentSend_P(PSTR("</script>")); WSContentSend_P(PSTR("<table><tr><td><input type='button' value='Toggle Power' onclick=TogglePower()></input></td><td id='PowerValue'></td></tr></table>")); WSContentSend_P(PSTR("</body></html>")); WSContentStop(); }
Und man hat seine "fetch-Seite" auf Tasmota mit dem Aufruf http://<IP>/xx
Aber ... macht das Sinn? Wenn ich eh schon auf dem Tasmota Device bin, kann ich die Daten ja auch direkt ablesen .... warum also dann das gefetche? und extern geht's eben nur mir CORS
-
Das Problem bei der Lösung von karoCB ist, das das scheinbar nur auf nem ESP32 läuft weil auch noch ein kleiner HTTP Server erzeugt werden muss. Bei nem ESP8266 mit ufs wird das File nur zum download angeboten aber nicht aufgerufen.
(Falls das doch geht, bitte korrigiert mich)
Alternativ, könnte man seine Webseite auch ins Tasmota WebUI mit hinein-modden.
Aber einfacher ist es dann wohl doch mit Cors und man hat die Option es von überall aus aufzurufen.
-
Cors ( verschiedene Server zulassen ) habe ich auch nicht aktiv und es geht dennoch, da die HTML- Seite zum Start auf dem ufs- Filesystem des auszuwertenden Tasmota liegt
Stimmt.
Ebenfalls danke für den Tipp! Wenn man die Seite auf den Tasmota-Device selbst speichert wird Cors nicht benötigt.
Auch ein gute Lösung.
-
Moin.
Die html-Seite von HoerMirAuf muss auf einem Webserver liegen
Die darf auch auf einem Rechner lokal gespeichert sein. Hosten auf nem Server ist nicht nötig.
Ansonsten wie die Vorredner sagten:
CORS muss mit einkompiliert sein.
-
Moin.
aber wenn ich die GPIO's an denen die LED's hängen auch als Relais konfiguriere dann gehen diese zwar mit Tastendruck an und aus so wie gewünscht, aber die eigentlichen Relais schalten nicht mehr - auch nicht über das Web-Interface !?
Das ist interessant. Ich hatte eigentlich erwartet das alle GPIO die als Relais1 bzw. Relais2 definiert sind, parallel angesteuert werden.
Leider kann ich's in der Praxis nicht nachstellen. Hab keinen Versuchsaufbau mit mehreren Relais bzw. LED's ....
-
Das mit den LED's ist so ne Sache ... das funktioniert so nicht, da die LED in der Konfig unter Tasmota mehr als Status LED füs System gedacht sind.
Am besten konfigurierts du die GPIO nicht als LED sondern ebenfalls als Relay1 und Relay2 ... anlog zu den physischen Relais.