Number in Hex Zahlen umwandeln / Payload erzeugen
Verfasst: 28. Apr 2022 15:36
Hallo Zusammen,
ich habe mehrere Tage schon mit suchen verbracht, aber ich tu mich leider noch etwas schwer bei meinem Problem und bitte um einen stubs in die richtige Richtung.
Meine Grundlage ist hier im Forum, unter dem Thema "SchreibWas - Eingabe von Freitexten in OpenHAB Basic-UI"
viewtopic.php?t=3803&sid=65156559330a5d ... 137de26622
entstanden, d.h. ich konnte "SchreibWas" nach meinen Bedürfnissen anpassen und kann die Eingaben in 3 verscheinden Variablen vom Type Number speichern.
Weitere Variablen vom Type String werden im Hintergrund zum Berechnen verwendet, also habe ich in der "standard.items" folgende Variablen definiert:
Number Bienenstock_01_WZ "Auswahl Wägezelle [%.0f]" <none>
String Bienenstock_01_WZ_Hex
Number Bienenstock_01_Befehl "Auswahl Befehl [%.0f]" <none>
Number Bienenstock_01_NW "Neuer Wert [%.0f]" <none>
String Bienenstock_01_NW_Hex
String temp_Hex
String Hex_Out
Bei Bedarf kann ich gerne noch die "Bienenstock_01.html" und die "Bienenstock_01.js" zur verfügung stellen, denke das ist aber nicht nötig für mein Problem der Umwandlung.
Was ich nun tun möchte, das ist ein Payload zusammen basteln, der per MQTT an den TTS Server gesendet werden kann und dort per LoRaWAN, an ein Enddevice gesendet wird.
Der Payload wird aus 3 Byte bestehen, 1 Byte für den Befehlt der auf dem Enddevice ausgeführt werden soll und 2 Byte für die Übergabe eines neuen Wertes, der vorab in dem Formular von dem angepassten "SchreibWas Skript" eingegeben wurde.
Der Befehl setzt sich wie folgt Zusammen:
Ich möchte für "Number Bienenstock_01_WZ" in einer JavaSkript die Zahlenbereiche mappen 1 = 10, 2 = 20, ... 5 = 50 und in einer Variable "Number Bienenstock_01_WZ_Temp" zwischen gespeichern.
Für "Number Bienenstock_01_Befehl" werden in der JavaSkript umrechnung Zahlenbereiche übernommen 1 = 1, 2 = 2, ... 5 = 5
und damit lege ich die Aktion fest, die auf dem Enddevice ausgeführt werden soll.
In einer Berechnung in der JavaSkript Datei werden die beiden "Number Bienenstock_01_WZ_Temp" und "Number Bienenstock_01_Befehl" Addiert und in eine Hexzahl umgewandelt und in einer String Variable gespeichert.
Beispiel:
Number Bienenstock_01_WZ = 2
Number Bienenstock_01_Befehl =4
Number Bienenstock_01_WZ_Hex = 40 <-- wird durchs Skript errechnet und gespeichert
Number Bienenstock_01_NW = 45047
Number Bienenstock_01_NW_Hex = AFF7<-- wird durchs Skript errechnet und gespeichert
Nun wird berechnet und in eine Hex Zahl umgewandelt:
String temp_Hex = 40+2 = 42 Dezimal = 2A
Und im Endschritt, werden beide Variablen zusammen gefügt
String Hex_Out = A2AFF7
und fertig ist der Payload, der mit MQTT versendet werden soll.
Ich hoffe das ist etwas verständlich, was ich vorhabe ?
Nun meine Bitte, ich suche Anhaltspunkte wie ich in einem Skript Zahlenbereiche mappen, Addieren und in Hex Zahlen umwandeln kann, meine bisherigen versuche sind leider gescheitert.
Gibt es ein gutes Deutsches Tutorial was mir erklärt, wie ich in Openhab JavaSkript oder Jython verwenden kann?
Ein konkretes Beispiel hilft mir immer deutlich weiter, so wie ich "SchreibWas" gut an meine Bedürfnisse anpassen konnte.
Ich würde mich bitte wirklich sehr über ein paar Tips von euch freuen, Danke für eure Mühe.
Cali
ich habe mehrere Tage schon mit suchen verbracht, aber ich tu mich leider noch etwas schwer bei meinem Problem und bitte um einen stubs in die richtige Richtung.
Meine Grundlage ist hier im Forum, unter dem Thema "SchreibWas - Eingabe von Freitexten in OpenHAB Basic-UI"
viewtopic.php?t=3803&sid=65156559330a5d ... 137de26622
entstanden, d.h. ich konnte "SchreibWas" nach meinen Bedürfnissen anpassen und kann die Eingaben in 3 verscheinden Variablen vom Type Number speichern.
Weitere Variablen vom Type String werden im Hintergrund zum Berechnen verwendet, also habe ich in der "standard.items" folgende Variablen definiert:
Number Bienenstock_01_WZ "Auswahl Wägezelle [%.0f]" <none>
String Bienenstock_01_WZ_Hex
Number Bienenstock_01_Befehl "Auswahl Befehl [%.0f]" <none>
Number Bienenstock_01_NW "Neuer Wert [%.0f]" <none>
String Bienenstock_01_NW_Hex
String temp_Hex
String Hex_Out
Bei Bedarf kann ich gerne noch die "Bienenstock_01.html" und die "Bienenstock_01.js" zur verfügung stellen, denke das ist aber nicht nötig für mein Problem der Umwandlung.
Was ich nun tun möchte, das ist ein Payload zusammen basteln, der per MQTT an den TTS Server gesendet werden kann und dort per LoRaWAN, an ein Enddevice gesendet wird.
Der Payload wird aus 3 Byte bestehen, 1 Byte für den Befehlt der auf dem Enddevice ausgeführt werden soll und 2 Byte für die Übergabe eines neuen Wertes, der vorab in dem Formular von dem angepassten "SchreibWas Skript" eingegeben wurde.
Der Befehl setzt sich wie folgt Zusammen:
Ich möchte für "Number Bienenstock_01_WZ" in einer JavaSkript die Zahlenbereiche mappen 1 = 10, 2 = 20, ... 5 = 50 und in einer Variable "Number Bienenstock_01_WZ_Temp" zwischen gespeichern.
Für "Number Bienenstock_01_Befehl" werden in der JavaSkript umrechnung Zahlenbereiche übernommen 1 = 1, 2 = 2, ... 5 = 5
und damit lege ich die Aktion fest, die auf dem Enddevice ausgeführt werden soll.
In einer Berechnung in der JavaSkript Datei werden die beiden "Number Bienenstock_01_WZ_Temp" und "Number Bienenstock_01_Befehl" Addiert und in eine Hexzahl umgewandelt und in einer String Variable gespeichert.
Beispiel:
Number Bienenstock_01_WZ = 2
Number Bienenstock_01_Befehl =4
Number Bienenstock_01_WZ_Hex = 40 <-- wird durchs Skript errechnet und gespeichert
Number Bienenstock_01_NW = 45047
Number Bienenstock_01_NW_Hex = AFF7<-- wird durchs Skript errechnet und gespeichert
Nun wird berechnet und in eine Hex Zahl umgewandelt:
String temp_Hex = 40+2 = 42 Dezimal = 2A
Und im Endschritt, werden beide Variablen zusammen gefügt
String Hex_Out = A2AFF7
und fertig ist der Payload, der mit MQTT versendet werden soll.
Ich hoffe das ist etwas verständlich, was ich vorhabe ?
Nun meine Bitte, ich suche Anhaltspunkte wie ich in einem Skript Zahlenbereiche mappen, Addieren und in Hex Zahlen umwandeln kann, meine bisherigen versuche sind leider gescheitert.
Gibt es ein gutes Deutsches Tutorial was mir erklärt, wie ich in Openhab JavaSkript oder Jython verwenden kann?
Ein konkretes Beispiel hilft mir immer deutlich weiter, so wie ich "SchreibWas" gut an meine Bedürfnisse anpassen konnte.
Ich würde mich bitte wirklich sehr über ein paar Tips von euch freuen, Danke für eure Mühe.
Cali