NEWS
Energieanzeige (kWh) über HTML Tabelle - vis
-
um ein klareres bild zu bekommen - stoppe mal das script und die sonoff instanz -- dann lösche sonoff.0 in den objecten - alle datenpukte - dann starte die sonoff instanz wieder
anschliessend siehst du , was für datenpunkte angelegt werden und beschrieben - zur not auch mal die gosunds direkt neustarten (über die web console)
das script holt sich ertmal den POWER zustand (ist der leer, kommt eine warnung) um anschliessend zu testen, ob es sich um einen gosund 112 handelt - dann werden die beiden POWER1 und POWER2 geholt
daher ist es wichtig zu wissen, ob POWER da ist und geschrieben wurde - ansonsten muss ich das script anders in der abfrage aufbauen - z.b zuerst prüfen, ob es ein 112er ist und P1 und P2 lesen - ansonsten POWER nehmen
was mich wundert ist, dass POWER nicht geschrieben wird - das ist ja eigentlich der schalter für die 230V - da sollte immer ein wert drin sein - ich nehme dann an, die haben POWER1 und POWER2 als usb-schalter eingesetzt ? vielleicht muss man nochmal flashen, den POWER sollte immer da sein
und während ich das schreibe, fällt mir auf, dass es eigentlich im energiescript nur um den POWER geht und das script dann ohne umstellung funktionieren müßte - anders im sonoff script von mir - da könnte man überlegen, ob POWER 1 und POWER2 angezeigt werden soll ( ich weiß nicht, ob du das sonoff script kennst)
@liv-in-sky hallo hatte auch das Problem mit dem Sp112. Bei mir kommt bei der Abfrage (if (getState(id).val SP112 statt GOSUND SP112). Ich habe den GOSUND-Zweig wie folgt geändert:
if (getState(id).val.includes("Gosund SP1") || getState(id).val.includes("SP11") || getState(id).val.includes("Gosund SP111") || getState(id).val.includes("SP112")) { // log (id) anzahl++; var ida = id.split('.'); counter++; val1=getState(id.replace("INFO.Module","alive")).val; val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ; val4=getState(id.replace("INFO.Module","ENERGY_Power")).val.toString()+ " W" val2=((getState(id.replace("INFO.Module","ENERGY_Current")).val)*1000).toString()+ " mA"; val3=getState(id.replace("INFO.Module","ENERGY_Voltage")).val.toString()+" V"; var val7_2; var val8_2; //console.log("==========>>>> "+ getState(id).val); if (getState(id).val=="SP112") { let val7_1=getState(id.replace("INFO.Module","POWER1")).val; val7_1 ? val7_2=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val7_2=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF</font>"; let val8_1=getState(id.replace("INFO.Module","POWER2")).val; val8_1 ? val8_2=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val8_2=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF</font>"; val5=val7_2+" "+val8_2; } else{ let val7_1=getState(id.replace("INFO.Module","POWER")).val; val7_1 ? val5=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val5=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF</font>";} val6=" - "; val7=" - "; val8=" - "; val9=" - "; valMarkeDevice="gosundk" if (sourceAnalyGo) {brechneEnergy(val0,getState(id.replace("INFO.Module","ENERGY_Power")).val) if (rootCounter){ sammleDaten(); berechneGesamt() } } zeigeVal1(); if (!filterArrAusnahme.includes(val0)) { tabelleBind(); } else{let help=[val0,val1,val2,val3,val4,val5,val6,val7,val8,val9]; filterArrAusnahmeHelp.push(help);} } });Damit funktioniert es bei mir.
-
@liv-in-sky hallo hatte auch das Problem mit dem Sp112. Bei mir kommt bei der Abfrage (if (getState(id).val SP112 statt GOSUND SP112). Ich habe den GOSUND-Zweig wie folgt geändert:
if (getState(id).val.includes("Gosund SP1") || getState(id).val.includes("SP11") || getState(id).val.includes("Gosund SP111") || getState(id).val.includes("SP112")) { // log (id) anzahl++; var ida = id.split('.'); counter++; val1=getState(id.replace("INFO.Module","alive")).val; val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]).common.name ; val4=getState(id.replace("INFO.Module","ENERGY_Power")).val.toString()+ " W" val2=((getState(id.replace("INFO.Module","ENERGY_Current")).val)*1000).toString()+ " mA"; val3=getState(id.replace("INFO.Module","ENERGY_Voltage")).val.toString()+" V"; var val7_2; var val8_2; //console.log("==========>>>> "+ getState(id).val); if (getState(id).val=="SP112") { let val7_1=getState(id.replace("INFO.Module","POWER1")).val; val7_1 ? val7_2=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val7_2=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF</font>"; let val8_1=getState(id.replace("INFO.Module","POWER2")).val; val8_1 ? val8_2=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val8_2=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF</font>"; val5=val7_2+" "+val8_2; } else{ let val7_1=getState(id.replace("INFO.Module","POWER")).val; val7_1 ? val5=(" <font color=\""+farbeSchalterON+"\"> ")+"ON</font>" : val5=(" <font color=\""+farbeSchalterOFF+"\"> ")+"OFF</font>";} val6=" - "; val7=" - "; val8=" - "; val9=" - "; valMarkeDevice="gosundk" if (sourceAnalyGo) {brechneEnergy(val0,getState(id.replace("INFO.Module","ENERGY_Power")).val) if (rootCounter){ sammleDaten(); berechneGesamt() } } zeigeVal1(); if (!filterArrAusnahme.includes(val0)) { tabelleBind(); } else{let help=[val0,val1,val2,val3,val4,val5,val6,val7,val8,val9]; filterArrAusnahmeHelp.push(help);} } });Damit funktioniert es bei mir.
@schauaufdich danke für die info - könntest du bitte den code tag im deinem post richtig setzen ? wäre übersichtlicher :-)
scheint eine bessere lösung zu sein - die info.module einträge scheinen doch ziemlich verschieden zu sein
-
Irgendwie findet das Script meine Shellys mit Tasmota drauf nicht. Was muss ich tun?
-
Irgendwie findet das Script meine Shellys mit Tasmota drauf nicht. Was muss ich tun?
@Christoph-Bubeck liegt daran, dass shellys mit tasmota nicht im script integriert sind
integriert ist der sonoff pow (der auch tasmota hat) - evtl wäre es sinnvoll den pow teil zu tasmota zu ändern und dann könnte man den einbinden
kannst du mir mal einen json export deines shellys mit tasmota machen - dann schau ich da mal rein
json-export: https://forum.iobroker.net/post/355793 - wähle den ordner des shellys aus und dann den export - zusätzlich brauche ich noch den inhalt des info.module datenpunktes des shellys
-
Jau das hab ich auch gerade gesehen.
Wenn ich dann im Pow bereich das modul für shelly 2 hinzufüge findet er leider die doppeleinträge nicht -
Jau das hab ich auch gerade gesehen.
Wenn ich dann im Pow bereich das modul für shelly 2 hinzufüge findet er leider die doppeleinträge nicht@Christoph-Bubeck ich schau es mir mal an - meld mich wieder
-
Sehr cool! Ich danke dir!!!!
-
Sehr cool! Ich danke dir!!!!
@Christoph-Bubeck bitte noch den inhalt von INFO.module
-

-
@Christoph-Bubeck zur sicherheit
die watt werte stehen in den POWERx_STATE datenpunkten ? vielleicht kannst du da auch ein bildchen machen :-)
-
Gerne =)

-

-
watt = sonoff.0.DVES_F40825.ENERGY_Power_0 und 1
onoff = sonoff.0.DVES_F40825.POWER1 und 2 -
watt = sonoff.0.DVES_F40825.ENERGY_Power_0 und 1
onoff = sonoff.0.DVES_F40825.POWER1 und 2@Christoph-Bubeck super - danke - das hilft - mußte neu importieren, waren nicht alle datenpunkte im system angekommen
hast du das sonoff script auch am laufen? da wird der 2.5er angezeigt - aber auch ohne energy werte und ohne power1 und 2
-
Ich bin einer großer fan deiner scripts ;) Die hab ich alle.
Auch das batterie ding läuft- Ich hab allerdings den homatic teil auf MAX! angepasst. Dafür musste man lediglich den Suchstring anpassen. der rest läuft dann so =)



-
Weißt du was nochmal ein richtig geiles Script wäre. Eins was prüft ob alle Aktoren noch leben.
alive, working, online DPs usw prüfen und zusätzlich wann sich die dinger das letzte mal gemeldet haben. darüber könnte man schnell erkennen, wenn sich einer still und heimlich verabschiedet hat.
Das könnte man dann auch quasi alle adapter los laufen lassen.
aktuell hab ich sowas als blockly. das ist natürlich nicht so schön
-
Weißt du was nochmal ein richtig geiles Script wäre. Eins was prüft ob alle Aktoren noch leben.
alive, working, online DPs usw prüfen und zusätzlich wann sich die dinger das letzte mal gemeldet haben. darüber könnte man schnell erkennen, wenn sich einer still und heimlich verabschiedet hat.
Das könnte man dann auch quasi alle adapter los laufen lassen.
aktuell hab ich sowas als blockly. das ist natürlich nicht so schön
@Christoph-Bubeck wo vermisst du es ?
eigentlich sind diese datenpunkte im sonoff und energy realisiert - wenn alive nicht da ist, sind die in der tabelle anders dargestellt
z.b. :

im batt script ist dies nicht der fall - irgendwie hatte ich da ein problem damit - da muss ich mal tief in mich gehen und darüber nachdenken
habe ein,zwei scripte, die über alle adapter gehen - da gibt es immer wieder ein problem und auf meine art ist es ganz schön resourcen-fressend - bei 30 000 datenpunkten ist das ganz schön viel :-( -
Genau. Bei batterie Sensoren viel mir das auf.
Die Aqara PIRs oder MAX Thermostate steigen gerne mal aus und liefern dann keine Daten mehr. Da wäre so eine Warnung ja ganz Nett. Man muss doch auch nicht alle 30000 DPs durchgehen. Es reichen doch bestimmte Attribute, oder?
-
Weißt du was nochmal ein richtig geiles Script wäre. Eins was prüft ob alle Aktoren noch leben.
alive, working, online DPs usw prüfen und zusätzlich wann sich die dinger das letzte mal gemeldet haben. darüber könnte man schnell erkennen, wenn sich einer still und heimlich verabschiedet hat.
Das könnte man dann auch quasi alle adapter los laufen lassen.
aktuell hab ich sowas als blockly. das ist natürlich nicht so schön
@Christoph-Bubeck
es gibt noch ein anderes problem - energy script - da es 2 watt werte gibt habe ich zwei möglichkeiten:
- entweder ich addiere die beiden werte und mach einen watt-wert draus oder
- ich muss das device auf 2 aufteilen - also 2 zeilen pro shelly 2.5
die erste lösung wäre mir lieber - die 2te wäre ein riesenaufwand im script
zu den online dp:
aber die attribute können vielfälltig sein - evtl müßte die einzelnen devices in eine aufzählung (function) rein - das müßte jeder user dann selbst machen - dann werden nur states, die teil der function-aufzählung sind, bearbeitet
-
@Christoph-Bubeck
es gibt noch ein anderes problem - energy script - da es 2 watt werte gibt habe ich zwei möglichkeiten:
- entweder ich addiere die beiden werte und mach einen watt-wert draus oder
- ich muss das device auf 2 aufteilen - also 2 zeilen pro shelly 2.5
die erste lösung wäre mir lieber - die 2te wäre ein riesenaufwand im script
zu den online dp:
aber die attribute können vielfälltig sein - evtl müßte die einzelnen devices in eine aufzählung (function) rein - das müßte jeder user dann selbst machen - dann werden nur states, die teil der function-aufzählung sind, bearbeitet
@liv-in-sky Ich finde die option mit dem addieren auch besser! Das reicht doch vollkommen aus.
Das ist auch eine gute idee!! Ein Funktion ist ja einfach zu bedienen