NEWS
[Gelöst] Vis Binding javascript
-
habe jetzt mal mit 2 werten - abfrage getestet - fuktioniert auch
function isOnRgbColor2(schalter1, t) { console.log(t) if (t > 0 && schalter1=="true") {console.log("true"+schalter1); return "green"} if (t > 0 && schalter1!="true") {console.log("false"+schalter1); return "red"} if(t==0) { return "yellow"; } }wichtig ist das true in anführungszeichen

So funktionierts auch:
{n:sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_previousDay;isOnRgbColor2(n,n)}Irgendwie mach ich anscheinend einen Fehler bei der Defintion von 2 Variablen...
-
So funktionierts auch:
{n:sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_previousDay;isOnRgbColor2(n,n)}Irgendwie mach ich anscheinend einen Fehler bei der Defintion von 2 Variablen...
@gramar wo ist der sinn bei einer zweimaligen übergabe des selben wertes ?
-
@gramar wo ist der sinn bei einer zweimaligen übergabe des selben wertes ?
@liv-in-sky
Das hab ich nur testweise gemacht um den Fehler einzugrenzen. Ziele wäre eben genau diese Übergabe:{heute:sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_currentDay; aktuell:sonoff.0.Sonoff-PowR2-Geschirrspüler.ENERGY_Power; isOnRgbColor2(aktuell,heute)} -
@liv-in-sky
Das hab ich nur testweise gemacht um den Fehler einzugrenzen. Ziele wäre eben genau diese Übergabe:{heute:sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_currentDay; aktuell:sonoff.0.Sonoff-PowR2-Geschirrspüler.ENERGY_Power; isOnRgbColor2(aktuell,heute)}füge mal in deinem script das console.log ein und beobachte das ganze mit den chrome-entwicklertools - dann siehst du, ob script oder übergabe das problem ist
-
füge mal in deinem script das console.log ein und beobachte das ganze mit den chrome-entwicklertools - dann siehst du, ob script oder übergabe das problem ist
Error in eval[value] : {heute:sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_currentDay; aktuell:sonoff.0.Sonoff-PowR2-Geschirrspüler.ENERGY_Power; isOnRgbColor2(aktuell,heute)} Error in eval[script]: var heute = "1.056";return aktuell:sonoff.0.Sonoff-PowR2-Geschirrspüler.ENERGY_Power; Error in eval[error] : SyntaxError: unexpected token: ':' -
Error in eval[value] : {heute:sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_currentDay; aktuell:sonoff.0.Sonoff-PowR2-Geschirrspüler.ENERGY_Power; isOnRgbColor2(aktuell,heute)} Error in eval[script]: var heute = "1.056";return aktuell:sonoff.0.Sonoff-PowR2-Geschirrspüler.ENERGY_Power; Error in eval[error] : SyntaxError: unexpected token: ':'teste mal mit einem anderen datenpunkt
sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_currentDaydieses .01 wird als zahl angezeigt
poste auch das momentane ganze script
-
teste mal mit einem anderen datenpunkt
sourceanalytix.0.sonoff__0__Sonoff-PowR2-Geschirrspüler__ENERGY_Total.currentYear.consumed.01_currentDaydieses .01 wird als zahl angezeigt
poste auch das momentane ganze script
@liv-in-sky
Mit einem anderen Datenpunkt funktionierts tatsächlich!
Kann man den Namen des Datenpunkts unter Hochkomma stellen damit das Script das nicht falsch interpretiert? -
@liv-in-sky
Mit einem anderen Datenpunkt funktionierts tatsächlich!
Kann man den Namen des Datenpunkts unter Hochkomma stellen damit das Script das nicht falsch interpretiert?musst du testen - bei mir funktioniert es nicht
glaube du musst z.b. mit einem alias arbeiten
-
@liv-in-sky
Mit einem anderen Datenpunkt funktionierts tatsächlich!
Kann man den Namen des Datenpunkts unter Hochkomma stellen damit das Script das nicht falsch interpretiert?ich versuche mich noch einmal zu verdeutlichen.
die reihenfolge, wann die widgets geladen werden ist zufällig. daher kann es manchmal funktionieren, manchmal nicht.
vis untersucht das binding einmalig beim laden der html seite.
wenn dann das javascript nicht zur Verfügung steht, dann wird das binding nie funktionieren.daher ist es keine gute idee, javascript funktionen in ein html widget zu packen. leider ist meine frage oben dazu nicht vollständig beantwortet worden. aber das wäre der einzige ort in vis. wo man einen script tag unterbringen kann
besser ist es die javascript funktionen in den reiter "skript" bei vis einzutragen. die stehen dann gleich zu beginn zur Verfügung. -
ich versuche mich noch einmal zu verdeutlichen.
die reihenfolge, wann die widgets geladen werden ist zufällig. daher kann es manchmal funktionieren, manchmal nicht.
vis untersucht das binding einmalig beim laden der html seite.
wenn dann das javascript nicht zur Verfügung steht, dann wird das binding nie funktionieren.daher ist es keine gute idee, javascript funktionen in ein html widget zu packen. leider ist meine frage oben dazu nicht vollständig beantwortet worden. aber das wäre der einzige ort in vis. wo man einen script tag unterbringen kann
besser ist es die javascript funktionen in den reiter "skript" bei vis einzutragen. die stehen dann gleich zu beginn zur Verfügung. -
-
@OliverIO doch doch, die Funktion isOnRgbColor2 selber ist schon im reiter "skript" definiert.
@liv-in-sky wie funktioniert das mit Aliase? Du meinst im Objekt des Datenpunktes einen Alias erstellen?
@gramar ja genau - die alias function vom iobroker nutzen - so kannst du diesen datenpunkt einen "guten" namen geben
kann man ganz schnell über die raw einstellung eines aliases ändern - soll ja nur gespiegelt werden
hier eine schnell erzeugung - du musst deinen datenpunkt als id reinkopieren

anschliessend nutzt du das alias in deiner function
-
@gramar ja genau - die alias function vom iobroker nutzen - so kannst du diesen datenpunkt einen "guten" namen geben
kann man ganz schnell über die raw einstellung eines aliases ändern - soll ja nur gespiegelt werden
hier eine schnell erzeugung - du musst deinen datenpunkt als id reinkopieren

anschliessend nutzt du das alias in deiner function
@liv-in-sky und wie spreche ich den alias dann an? alias.0.testAlias oder alias.0.testAlias.id?
-
@liv-in-sky und wie spreche ich den alias dann an? alias.0.testAlias oder alias.0.testAlias.id?
-
@liv-in-sky das mit alias scheint leider auch nicht zu funktionieren:

-
@liv-in-sky das mit alias scheint leider auch nicht zu funktionieren:

@gramar ich teste mal - meld mich wieder
-
@liv-in-sky das mit alias scheint leider auch nicht zu funktionieren:

habe mit alias getestet - funktioniert
{value1:alias.0.Flur.Licht.Fenster;value2:sonoff.0.SonoffPow6.ENERGY_Current; isOnRgbColor2(value1,value2)} -
@liv-in-sky das mit alias scheint leider auch nicht zu funktionieren:

@gramar
zum fehler
evtl der umlaut in geschirrspüler -
@gramar
zum fehler
evtl der umlaut in geschirrspüler@liv-in-sky es war tatsächlich der Umlaut...

hab die umlaute entfernt. jetzt funktionierts auch ohne alias perfekt.Vielen Dank für die Hilfe zur Fehlerfindung!!!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden