NEWS
Sonoff Tasmota Timer (1-12) über ioBroker nutzen?
-
was meinst du eigentlich mit timer setzen - nur enabeln und disabeln oder mehr - oder möchtest du alles machen können ( anlegen, verändern einzelner einstellungen ?)
sollte so funktionieren:
- habe die select-widgets nicht "schön" formatiert
- es sind nicht alle möglichkeiten integriert - viel arbeit
- das einrichten ist auch etwas kompliziert - ich habe noch ein extra script dafür gebraucht
- der refresh des ganzen dauert immer ein wenig - das liegt am aufbau der tabelle: diese ist ausgebremst, damit das lesen der sonoffs nicht zu schnell geht
-
Prinzipiell wäre Anlegen, Ändern sowie Enable/Disable für mich mal interessiert.
Derzeit komme ich mit dem Skript noch nicht ganz klar, es will bei mir absolut nichts ausgeben.
Welchen MQTT verwendest du denn? Instanz "sonoff.0" oder "mqtt.0". Versucht habe ich es mit beiden, aber es klappte nicht. Ich habe den Sonoff mal zurück gesetzt und nun den "sonoff.0" verwendet. Auch habe ich alles unter "sonoff.0" entfernt (testweise), damit alle Werte neu geschrieben werden.
Aktuell sieht es bei mir so aus:
//HIER WIRD PFAD UND FILENAME DEFINIERT const path = "/htmlexample.html"; //FIlenamen definieren const home ='vis.0' //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta) let braucheEinFile=false; // bei true wird ein file geschrieben let braucheEinVISWidget=true; // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile let dpVIS="javascript.0.Tasmota.TestHTML" //WICHTIG wenn braucheEinVISWidget auf true gesetzt !! dp zusätzlich für VIS-HTML-Basic-Widget let dpRefresh="javascript.0.Tasmota.TestHTMLRefresh" let mySchedule=" * * * * * "; //jede minute //--------------------------------------- var leerzeile=true ; // leerzeile vor neuen kalender var styleUeber="span" var farbeUeber="lightblue" var symbolLink="🌎"; var anzahlTimer=5; // wieviele Timer sollen abgefragt werden // var filterArray=["DVES_8CBFCA","Sonoff15","Sonoff16"]; // definiert, welche geräte gecheckt werden (hostname) var filterArray=["DVES_8CBFCA"]; // definiert, welche geräte gecheckt werden (hostname)
Die Anzeige im VIS habe ich mal so erledigt:
[{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{javascript.0.Tasmota.TestHTML}"},"style":{"left":"24px","top":"15px","width":"934px","height":"680px","border-width":"1px","border-style":"solid","border-color":"#efff14"},"widgetSet":"basic"}]
Im Prinzip ein "basic HTML", wo ich bei HTML dann {javascript.0.Tasmota.TestHTML} eingefügt habe.
-
@Soundy da wird kein mqtt verwendet - alles über http get
wenn du lust hast, lass uns mal eine anydesk oder teamviewer session machen - da kommen wir am schnellsten zur lösung
-
was du noch probieren könntest: füge axios in das setting der javscript instanz ein - könnte wichtig sein !
-
@liv-in-sky Geniale Arbeit von dir (mal wieder).
Mir würde schon die Tabelle mit den Timern reichen. Wie liest du die aus?
Würdest du die zur Verfügung stellen?@mickym Der Device Manager funktioniert bei mir nicht weil er einen MQTT Broker braucht. Der Sonoff Adapter scheint dafür nicht geeignet.
Kennst du eine Lösung ohne den Broker? -
script hier : https://forum.iobroker.net/post/484380 - läuft alles über http get befehle (axios)
und in der instanz von javascript im setting axios eintragen https://forum.iobroker.net/post/484764
zum testen das schedule kürzer stellen - jede minute
-
@liv-in-sky Ah, Danke. Jetzt wird mir klar warum da nur einer kommt.
-
@liv-in-sky Danke für die Klasse Arbeit.
Ich habe jetzt nur ein Problem das etwas schräg ist.
Fast alle Geräte mit Timern sind jetzt aktuell aufgeführt.
Aber an meinen Aquarien habe ich 3 Geräte die einfach nicht einlesbar sind. Habe ich da an den Tasmotas irgendwas übersehen?
Hostname(In Tasmota) - AQ-Deko, AQ1Tag, Aquarium2
Name im ioBroker gleich. -
@Chaot welche tasmota version haben die ?
-
@liv-in-sky Das ist ja das rätselhafte.
Gemischt zwischen 8.2.0.1 bis 8.4.0.2. Die anderen (die funktionieren) auch. -
was du noch probieren könntest: füge axios in das setting der javscript instanz ein
Das habe ich nun drinnen, aber es funktioniert irgendwie trotzdem nicht.
Wie bindest du denn die Sonoff in ioBroker ein? Mit dem "sonoff"-Adapter oder wie? Weil irgendwo müssen ja die Datenpunkte für IP, Host & Co. ja herkommen.
Stimmt die Einbindung in VIS überhaupt, wie weiter oben exportiert bzw. als Screenshot gezeigt? Oder habe ich da was falsch gemacht oder was vergessen?
EDIT (22:21 Uhr):
Bin eben drauf gekommen, dass du anscheinend den "sonoff-Adapter" nutzt, da sonst keine Info zu IP/Host vorhanden sind. Und ich habe den Gerätenamen (bei mir rot gerahmt) verwendet, aber es muss der Hostname (grün gerahmt) sein. Siehe Screenshot:
Jetzt werden mir die Timer 1-5 ausgelesen, aber da gibts ja 12 Timer:
SORRY! HAB DAS ÜBERSEHEN:
var anzahlTimer=5; // wieviele Timer sollen abgefragt werden
Die Tabelle im VIS wird mir aber noch immer nicht geschrieben.
Im Datenpunkt "javascript.0.Tasmota.TestHTML" landet das hier, unter "javascript.0.Tasmota.TestHTMLRefresh" ist gar nichts. Hier ein Screenshot davon. Der Inhalt gleich danach als Code:
<center><p style="color:white; font-family:Helvetica; font-size: 18px; font-weight:normal">Sonoff Devices Timers  Last Update: 22:28:10<table bordercolor="grey" border="2px" cellspacing="3" cellpadding="3" width="auto" rules="cols" style="color:#BDBDBD; font-size:14px; font-family:Helvetica;background-image: linear-gradient(42deg,#1c1c1c,#1c1c1c);"><tr height="35" style="color:#BDBDBD; font-size: 16px; font-weight: normal ; border-bottom: 2px solid white "><td width=auto align=left> Timer </td><td width=auto align=center> Mode </td><td align=center> Repeat </td><td align=center> Window </td><td align=center> Days </td><td align=center> Time </td><td align=center> Output </td><td align=center> Action </td></tr></table>
-
ich arbeite morgen weiter am scipt und werde dann einen neuen thread öffnen - versuche das script noch etwas einfacher zu gestallten und eine bessere anleitung zu machen - ich melde mich dann bei dir
ps: ausgegeben werden nur timer, die aktiviert sind
-
@liv-in-sky said in Sonoff Tasmota Timer (1-12) über ioBroker nutzen?:
ps: ausgegeben werden nur timer, die aktiviert sind
Hmmm, also ich hab jetzt die Anzahl der Timer von 5 auf 12 im Skript angepaßt.
Jetzt werden mir alle Daten ausgelesen, obwohl nur Timer 1 testweise mit Daten gefüttert und aktiviert ist.
Ich freu mich schon auf die überarbeitete Version und bin gerne auch Tester.
-