NEWS
[gelöst]2 oder mehr Kriterien für die Sichtbarkeit in vis
-
Re: Sichtbarkeit eines Widget nach mehreren Kriterien
Hallo,
im o.g. Thread wurde vorgeschlagen, ein script zu schreiben, das die Datenpunkte untersucht und davon abhängig einen weiteren Datenpunkt auf true oder false setzt...Ist das wirklich die einzige Möglichkeit, kann man da nicht die Kriterien irgendwie anders verknüpfen?
Grund für die Anfrage:
Ich kann leider kein Javascript
(Meine Kenntnisse würde gerade dazu reichen, ein Beispielscript anzupassen und ins System zu integrieren)Willyiobrok
-
Re: Sichtbarkeit eines Widget nach mehreren Kriterien
Hallo,
im o.g. Thread wurde vorgeschlagen, ein script zu schreiben, das die Datenpunkte untersucht und davon abhängig einen weiteren Datenpunkt auf true oder false setzt...Ist das wirklich die einzige Möglichkeit, kann man da nicht die Kriterien irgendwie anders verknüpfen?
Grund für die Anfrage:
Ich kann leider kein Javascript
(Meine Kenntnisse würde gerade dazu reichen, ein Beispielscript anzupassen und ins System zu integrieren)Willyiobrok
@willyiobrok sagte in 2 oder mehr Kriterien für die Sichtbarkeit eines Objects:
Ich kann leider kein Javascript
keine Ausreden!
dann bringen wir dir Blockly eben bei!
Das ist nicht schwer. Der "Use Case" könnte ein leichter Einstieg sein.Was willst du denn als Bedingungen nutzen
-
@willyiobrok sagte in 2 oder mehr Kriterien für die Sichtbarkeit eines Objects:
Ich kann leider kein Javascript
keine Ausreden!
dann bringen wir dir Blockly eben bei!
Das ist nicht schwer. Der "Use Case" könnte ein leichter Einstieg sein.Was willst du denn als Bedingungen nutzen
Hmmm Blockly ? Habe ich irgendwann mal versucht und dann gleich wieder sein lassen (weiß nicht mehr warum). Da lerne ich lieber Javascript, hihihi (ich komme aus der C/C++ FW Ecke)
Die Bedingungen:
mqtt.0.info.connection bestehend aus Afucontroller
und
mqtt.0.KW_station_in_use bestehend aus untenAlso eigentlich ganz einfach

... ich glaube, ich versuche doch mal ein bestehendes Javascript (das ich für einen anderen Zweck unter Anleitung "verbrochen habe") anzupassen:
var solar_conspac_l // Verbrauch var solar_pac_l // Erzeugung var solar_p_netz_l =0; // Netzbetreiber Lieferung/Bezug function update_solar_p_netz() { solar_conspac_l = getState("solarlog.0.status.conspac").val; solar_pac_l = getState("solarlog.0.status.pac").val; solar_p_netz_l = solar_pac_l - solar_conspac_l; // log(solar_conspac_l); // log(solar_pac_l); setState("0_userdata.0.solar_p_netz",solar_p_netz_l); // log("solar_p_netz neu berechnet"); // log(String(solar_p_netz_l)); // log( getState("0_userdata.0.solar_p_netz").val ); } //================================================================ update_solar_p_netz(); // Skriptstart // Trigger bei Wertänderung des Verbrauchs on("solarlog.0.status.conspac", function(dp) { update_solar_p_netz(); }); // Trigger bei Wertänderung der Erzeugung on("solarlog.0.status.pac", function(dp) { update_solar_p_netz(); }); -
Hmmm Blockly ? Habe ich irgendwann mal versucht und dann gleich wieder sein lassen (weiß nicht mehr warum). Da lerne ich lieber Javascript, hihihi (ich komme aus der C/C++ FW Ecke)
Die Bedingungen:
mqtt.0.info.connection bestehend aus Afucontroller
und
mqtt.0.KW_station_in_use bestehend aus untenAlso eigentlich ganz einfach

... ich glaube, ich versuche doch mal ein bestehendes Javascript (das ich für einen anderen Zweck unter Anleitung "verbrochen habe") anzupassen:
var solar_conspac_l // Verbrauch var solar_pac_l // Erzeugung var solar_p_netz_l =0; // Netzbetreiber Lieferung/Bezug function update_solar_p_netz() { solar_conspac_l = getState("solarlog.0.status.conspac").val; solar_pac_l = getState("solarlog.0.status.pac").val; solar_p_netz_l = solar_pac_l - solar_conspac_l; // log(solar_conspac_l); // log(solar_pac_l); setState("0_userdata.0.solar_p_netz",solar_p_netz_l); // log("solar_p_netz neu berechnet"); // log(String(solar_p_netz_l)); // log( getState("0_userdata.0.solar_p_netz").val ); } //================================================================ update_solar_p_netz(); // Skriptstart // Trigger bei Wertänderung des Verbrauchs on("solarlog.0.status.conspac", function(dp) { update_solar_p_netz(); }); // Trigger bei Wertänderung der Erzeugung on("solarlog.0.status.pac", function(dp) { update_solar_p_netz(); });du kannst auch ein binding in opacity nutzen - ist halt ein miniscript
ein beispiel
wenn luefter1 und luefter 3 ist war dann opacity =100 = sichtbar
{val1:controll-own.0.Luefter1;val2:controll-own.0.Luefter3; val1=="true" ? val2=="true" ? 100 : 0 :0}

-
@liv-in-sky
opacity - interessante Lösung, werde ich mir für später merken - vielen Dank!Fürs erste habe ich mein Problem mit einem Javascript gelöst (ich hätte es nicht gedacht, daß ich das schaffe, es war aber gar nicht so schwer,
hihihi)Ob das alles so richtig und schön ist weiß ich nicht, aber es scheint zu funktionieren ...
Trotzdem vielen Dank für die Tips !
WillyIoBrok
var connected_clients // mqtt-client-Liste var which_station // welche Station ist aktiv ? function update_KW_Station_in_use() { connected_clients = getState("mqtt.0.info.connection").val; which_station = getState("mqtt.0.KW_station_in_use").val; log(connected_clients); log(which_station); setState("mqtt.0.KW_aktiv_oben",false); setState("mqtt.0.KW_aktiv_unten",false); if (connected_clients.includes("Afucontroller")) { if (which_station.includes("oben")) { setState("mqtt.0.KW_aktiv_oben",true); } if (which_station.includes("unten")) { setState("mqtt.0.KW_aktiv_unten",true); } } log(getState("mqtt.0.KW_aktiv_oben").val ); log(getState("mqtt.0.KW_aktiv_unten").val ); } //================================================================ update_KW_Station_in_use(); // Skriptstart // Trigger bei Änderung der Verbindung on("mqtt.0.info.connection", function(dp) { update_KW_Station_in_use(); }); // Trigger bei Änderung der Stationswahl on("mqtt.0.KW_station_in_use", function(dp) { update_KW_Station_in_use(); });
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