Da stimme ich dir zu. Das wird zu unübersichtlich und führt zu Fehlern, wenn man die Verdrahtung vergisst.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neuer Formel-Baustein - wenn ihn jemand braucht
Einklappen
X
-
Hhm, ich verstehe jetzt nicht ganz, was Du mit dem E14 machst.... meine Idee war, dass man über den E14 nur steuert, ob der Baustein beim HS-Neustart berechnet wird oder nicht. Wenn an den anderen Eingängen ein Wert kommt, soll natürlich eine Berechnung erfolgen.Möchte den Komfort meiner Installation nicht mehr missen!
Kommentar
-
Ich wollte es einfach gleich mit erschlagen, dass man ggf. zwei Werte setzen und erst dann rechnen will. Vermutlich aber over-engineering. Daher hier offen zur Diskussion gestellt.
Also du willst nur sagen “neuberechnung beim Start”. Und wenn nein, dann bleibt der Ausgang bei 0 und es wird nix gefeuert. Korrekt. Ok einfach.
Kommentar
-
Super, ist im Download: die 0.5
Änderungen:- E14: Bei 1 (default) wird direkt nach dem Init bereits einmal gerechnet. Macht natürlich nur sinn, wenn die KOs bereits abgefragt wurden, sonst kommt ebenso 0 raus :-)
- round(..) wurde eingefügt. <0.5 => 0 und >=0.5 => 1
- abs(..) wurde eingefügt. -20 => 20 und 20 => 20
Kommentar
-
Hallo Sven!
Baustein funktioniert einwandfrei, wie von Dir beschrieben, aber....
.... für meinen Anwendungsfall kann ich den mit sbc nicht nutzen. Ich gebe über die Visualisierung eine Zeit ein als "7,30" für "07:30" und zerlege diese in Stunden und Minute - Stunde ist "trunc(x0)" und Minute ist "(x0 - trunc(x0))*100". Parallel nutze ich noch eine andere Visu, wo ich die Zeit anders eingebe (mit Doppelpunkt) und dann eben über eine andere kleine Logik zerlege. Gebe ich dort eine andere Zeit (bspw. "6:15") ein, bleibt in Deinem Baustein die "7,30" als letzter Wert und wenn ich darüber jetzt wieder auf "07,20" gehe, dann kommt die 7 hinten natürlich nicht raus, weil das noch der interne letzte Wert ist. Im Ergebnis ist dann die Zeit "6:20"...
Lange Rede kurzer Sinn: Kannst Du die 3 Ausgänge doppeln, so dass man sie einmal als sbc und einmal als send hat?Möchte den Komfort meiner Installation nicht mehr missen!
Kommentar
-
Greenshot 2023-01-10 21.36.53.png
Das wird teuer! Sonderwünsche kosten Extra :-)
Ne gute Idee mit den Ausgängen. Hatte erst noch einen Selektor-Eingang (0.6), aber fand es mit den duplizierten Ausgängen dann besser.
Wichtig für alle: Die nicht-SBC-Ausgänge werden bei jedem Input neu berechnet, auch wenn die Formal garnicht die Variable enthält. Das liegt daran, dass nicht vorab (und mit den y sogar rekursiv) geprüft wird, was wie wo verwendet wird. Daher macht nun jeder Input eine Neuberechnung auf A4-6.
Die v0.6.1 ist auf dem Weg in den Download. Vorab gibts die hier.
Kommentar
-
Hallo Sven!
Ich habe von Deinem Baustein immer wieder zahlreiche Exceptions in der debug stehen - kannst Du Dir das mal anschauen?
Grüße
Olaf13.04.2023 11:46:11 (52)
File "<Hs_formulaCalc14188>", line 378, in __thread_queue_consumer
File "<Hs_formulaCalc14188>", line 524, in on_input_value
File "<Hs_formulaCalc14188>", line 533, in calculate_formula
File "<Hs_formulaCalc14188>", line 189, in _set_output_value
RuntimeError: Outputqueue overflow (index=4)
EDIT: Hier noch die beiden Formeln, die ich verwende:
grafik.pngZuletzt geändert von Hightech; 13.04.2023, 12:10.Möchte den Komfort meiner Installation nicht mehr missen!
Kommentar
-
Moin,
hier die v0.8: https://github.com/SvenBunge/hs_form...eases/tag/v0.8
changes: min/Max geht wieder und bool() hinzugefügt für Logiken. Doku etwas geschärft.
Wenn ihr gutes Feedback gebt, lade ich es hier im Forum hoch.
Den Fehler von Hightech hab ich in der v0.7 schon repariert. das liegt daran, dass die output queue voll ist (die geht über alle bausteine) und der Baustein vorher nicht geprüft wurde, ob sie voll ist.Zuletzt geändert von SvenB; 07.12.2023, 23:51.
- Likes 1
Kommentar
-
SvenB
Sorry off Topic , aber bin über deine eval Funktion gestolpert und die macht mich natürlich neugierig ... made my day...
# does not fix everything but makes me feel better
# everyone is also kind of entitled to hack his own homeserver, isn't hZuletzt geändert von MrDuFF; 08.12.2023, 09:50.greetz Benni
Kommentar
-
Nehme Verbesserungen gern an. Auch einen PR mit nem eigenen Interpreter :-)
Python ist leider uncool was das Bereitstellen von sicheren Interpretern im Interpreter angeht, oder ich kenne es nicht. Kommen von überall noch Variablen rein, die man wieder zum Ausbruch nutzen kann.
Denke die Method ist ausreichend sicher, da man ja explizit oder implizit die Formel selber einsetzt und nicht über's Internet von Dritte eingesetzt wird.
Aber glaub du meintest es auch eher komisch und ist es: die Hälfte des Codes geht darum Sicherheit herbeizuführen gegen offene python-Injection auf seinem eigenen HS :-)Zuletzt geändert von SvenB; 08.12.2023, 14:47.
Kommentar
-
SvenB nicht in falschen hals bekomme ja ich fand deinen Kommentar halt witzig und hast doch mit method_dict schon etwas Sicherheit wenn ich den code richtig verstehe....( meine skills sind leider schlecht darum bin ich froh um jeden code den ich sehe )
asteval ist glaub ich eine alterative aber so what .. wie du schon im Kommentar geschrieben hast "everyone is also kind of entitled to hack his own homeserver, isn't h"
greetz Benni
Kommentar
-
Version 1.0 ist raus 🎉
Die 0.8 war nie im Download, die 0.9 gab es nicht, daher hier die Changes:
1.0:- Alles nun OpenSource wie gewohnt: https://github.com/SvenBunge/hs_formulaCalc unter LGPL
- Mit HS4 / neuer Schnittstellenbeschreibung gebaut, damit besserer Modul-Start ohne Race-Condition
- Der Race-Condition Fix / Hack aus V0.4 wurde entfernt
- Lizenz-Datei hinzugefügt
- min(..) und max(..) wurde wieder hinzugefügt
- bool(..) wurde hinzugefügt
- Doku überarbeitet
- Likes 3
Kommentar
Kommentar