Hat schon mal jemand für die UZSU etwas geschrieben um den nächsten Schaltzeitpunkt als Tooltip über dem UZSU Icon anzuzeigen?
Ankündigung
Einklappen
Keine Ankündigung bisher.
UZSU nächsten Schaltpunkt als Tooltip anzeigen
Einklappen
X
-
Moin bmx Bernd,
aktuell geht das nicht, weil die Info über den nächsten Schaltzeitpunkt im Widget nicht vorliegt. Man müsste wie bei device.uzsugraph eine komplette Timeline über alle Einträge einschl. Schaltserien, sonnenabhängigen Zeiten und Wochentagen aufbauen, um den nächsten Schaltzeitpunkt bestimmen zu können. Das ist grundsätzlich natürlich machbar, erfordert aber einen Umbau der UZSU-Widgets.
Da der nächste Schaltzeitpunkt immer im Scheduler von shNG angelegt ist, wäre die Frage, ob man diesen auslesen und in einem Hilfsitem zur Verfügung stellen kann. Zumindest für das WebIF ist der Wert ja lesbar. Aus meiner Sicht ist es sinnvoller, den tatsächlichen Wert zu nehmen, als ihn in der Visu nochmal nachzubilden.
Gruß
Wolfram
-
Zitat von wvhn Beitrag anzeigen
das wäre mMn eine feine Sache - ich stelle mir das ganz unabhängig vom Rest vor. Eine eigene Info-Seite wo die UZSU‘s angezeigt werden können. Muss nicht ins WebIF gewechselt werden um zu sehen, wann zB der Rollo abends fahren wird
Kommentar
-
HI,
man kann die Web-IF-Daten über eine Logik oder Eval in ein Item schreiben. Das kann dann zumindest mit basic.print dargestellt werden. Für den Tool-Tipp bräuchte es dann
eine Erweiterung des UZSU-Widget.
Abfragen der der Daten mit folgendem Code :
Code:import json test=sh.uzsu._webdata print(json.dumps(test['items']['indego.active_mode.uzsu.schaltuhr']['planned'],indent=2))
Code:{ "value": 10.0, "time": "18.04.2024 14:00" }
Andre
- Likes 1
Kommentar
-
Danke für die Ideen. Ich vermute den neuen Schaltzeitpunkt kann man auch in ein Hilfsitem packen und dann anzeigen. Nur wenn es da schon eine Lösung gegeben hätte würde ich die einfach kopiert haben. Eventuell kann man das in einem Struct mit abhandeln und mit dem uzsu Plugin mitliefern, dann muss das Rad nicht jeder selbst erfinden.
- Likes 1
Kommentar
-
Onkelandy, AndreK,
könnt Ihr das als Feature Request für das UZSU-Plugin aufnehmen: den nächsten Schaltzeitpunkt und den zugehörigen Wert vom Plugin aus standardmäßig in eine erweiterte item-Struktur schreiben?
Ich habe derweil mal gespielt und basic.print so erweitert: dass es einen dynamischen Tooltip in einem angebundenen Widget anlegt:
Code:{{ device.uzsuicon('uzsu1', 'myItem.uzsu', '', '', '', 'num') }} {{ basic.print('', 'myItem.uzsu.active', 'text', 'VAR?"Schaltuhr ist aktiv":"Schaltuhr ist inaktiv"', '', '', 'uzsu1', 'tooltip') }}
tooltip.gif
Die Erweiterung ist im develop branch.
Gruß
Wolfram
Kommentar
-
Folgender Eintrag unter "uzsu" Item im Struct müsste eigentlich reichen.
Code:next: remark: The next value and time type: dict visu_acl: ro eval: sh...planned() crontab: init = None eval_trigger: .. value: remark: The next value type: str visu_acl: ro eval: sh...property.value['value'] crontab: init = None eval_trigger: .. time: remark: The next time type: str visu_acl: ro eval: sh...property.value['next'] crontab: init = None eval_trigger: ..
Kommentar
-
Hi Onkelandy Andy,
ach so,
die "Funktion" - planned() hatte ich auch gesehen. Diese wird vom Logik-Editor und vom Executor-Plugin als Plugin-Funktion vorgeschlagen.
Code:sh.uzsu.planned()
Wie die db-Funktion bei Items mit database-Zuordnung. Hier liefert sh.database_plugin.db eine Instanz auf die Datenbank, sh.item.db(xxx) liefert Werte aus der DB.
Es lässt sich Stand heute nicht erkennen wie mit der Funktion umzugehen ist.
In der plugin.yaml ist das als "plugin_functions" definiert und wird so auch in den autocompletes vorgeschlagen. Das sind aber eher "additional_item_functions" - welche es meine ich, so oder so ähnlich, in der plugin.yaml nicht gibt, oder vielleich doch ?
Viele Grüße
Andre
Kommentar
-
Hast recht, das sind eigentlich item Funktionen, funzt nur, wenn man direkt das UZSU Item damit bestückt, also so wie oben angegeben. Theoretisch könnte mans auch als Pluginfunktion aufbauen, wo man dann halt noch das uzsu item als Parameter mitgeben muss - aber da würde ich jetzt den Vorteil nicht wirklich sehen, außer dass es mehr im Sinne des Erfinders wär
Kommentar
-
Moin Onkelandy,
mit der Erweiterung des Structs klappt es prima. Es gibt nur ein Problem: beim Neustart von shNG wird uzsuitem.next nicht korrekt initialisiert, obwohl die UZSU aktiv ist. Es erscheinen folgende Meldungen im Log während der Initialisierung:
Code:2024-04-18 19:30:52 WARNING lib.item.item Item 'test.varuzsua.uzsu.next.time': problem evaluating 'sh.test.varuzsua.uzsu.next.property.value['next']' - KeyError (in dict) 2024-04-18 19:30:52 WARNING lib.item.item Item 'test.varuzsua.uzsu.next.value': problem evaluating 'sh.test.varuzsua.uzsu.next.property.value['value']' - KeyError (in dict)
Danach bekomme ich den Tooltip mit folgendem Code (basic.print aus der aktuellen develop-Version):
Code:{{ device.uzsuicon('uzsu1','test.varuzsua.uzsu') }} {{ basic.print('',['test.varuzsua.uzsu.next.time','test.varuzsua.uzsu .next.value'],'text', '"Nächste Schaltzeit: "+VAR1+" Wert: "+VAR2', '', '', 'uzsu1', 'tooltip') }}
grafik.png
Gruß
Wolfram
Kommentar
-
Moin Onkelandy Andy,
ich bekomme das mit der Initialisierung nicht hin. Wenn ich die beiden Crontab-Einträge raus nehme, dann verschwinden die Fehlermeldungen in den child items. Aber das Mutter-item item.uzsu.next bleibt immer leer, bis ich einmal manuell die UZSU deaktiviert und wieder aktiviert habe. Habe schon versucht, das Crontab-init um 2 Minuten zu verzögern oder mit item.uzsu.active zu triggern - alles erfolglos. Zudem werden item.uzsu.next und Kinder nicht aktualisiert, wenn die UZSU Schaltbefehle ausführt.
Wenn ich den eval-Trigger für item.uzsu.next zusätzlich an den "Großvater" hänge, also ans item für den Aktor, dann klappt es wenigstens mal mit der Aktualisierung. Beim init bleibt item.uzsu.next weiterhin leer.
Basis: smarthomeNG v1.10.0.1-f3e33c67b.develop mit plugins v1.10.0.1-629e601d.develop (UZSU-pligin v2.0.1) unter Raspbian Bookworm und Python 3.9.2. Deine oben gepostete Erweiterung habe ich einfach in der plugin.yaml des UZSU-plugins an das bestehende Struct drangehängt.
grafik.png
Gruß
WolframZuletzt geändert von wvhn; 20.04.2024, 10:02.
Kommentar
Kommentar