NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Beantwortet] String ("on", "off") in Zeitserie

Wissen, Planung & Diskussion zur MQTT Unterstützung im Timberwolf Server.
Stellt uns hier Eure MQTT Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
Mibr85
Reactions:
Beiträge: 508
Registriert: Mo Dez 02, 2019 5:38 am
Wohnort: Freital
Hat sich bedankt: 395 Mal
Danksagung erhalten: 212 Mal

String ("on", "off") in Zeitserie

#1

Beitrag von Mibr85 »

Hallo zusammen
ich bekomme von meiner Heizung über MQTT den status meiner Heizkreispumpe als string "on" und "off" übermittelt wie kann ich das am besten in einer Zeitserie tracken? Wahrscheinlich muss ich es erst in einer Logik umwandel in 0 und 1 oder geht das evtl auch noch einfacher?
Danke für eure Vorschläge
Grüße Micha

TWS 3500 XL #1209 + TWS 2600 #528 + PBM #972,
VPN offen, Reboot möglich
PLZ 01...

eib-eg
Reactions:
Beiträge: 442
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1457 Mal
Danksagung erhalten: 235 Mal

#2

Beitrag von eib-eg »

Im MQTT Video wird es zwar nicht direkt gezeigt bei 23:45
sieht man aber das man die zeitserien als Ziel auswählen kann
TW 2600_99 seit 1.1.2018 / VPN zu

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#3

Beitrag von Robosoc »

Ich habe noch nie mit Strings im TWS gearbeitet...hat dann diese Zeitserie als Wert die Strings "on" und "off"? Im Plugin Discrete (sehr zu empfehlen für die Anzeige von Zuständen) kann man das dann eventuell auf Farben matchen, aber auch da bin ich mir nicht sicher ob das Plugin mit Strings umgehen kann.

Ein Logik-Modul mit String-Eingang ist mir ausser dem Modul Multiplexer(string), das hier aber nicht hilft, nicht bekannt. Auch gibt es glaube ich noch keine Konvertierungsfunktion die Strings am Eingang zu Werten mappt. Eventuell geht es über den mu-parser...dann könnten wir uns dafür etwas in einer Custom-Logik bauen...?
Zuletzt geändert von Robosoc am Di Nov 16, 2021 4:00 pm, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#4

Beitrag von Robosoc »

Habe es mit einem abgewandelten Logik-Modul "Freie Formel" als Custom-Logik probiert und dachte erst es würde klappen, aber am Ende war es doch nicht erfolgreich. Falls jemand noch einen Gedankenfehler in meinem Ansatz findet, hier der Code:

Code: Alles auswählen

/**
String-Vergleich
Wenn Text (String) = Vergleichstext (String) dann Ausgang TRUE, sonst FALSE
###################################################################################
#  Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL      #
#  ("Timberwolf Open Logic Block License"), die unter https://wrgt.news/TOLL          #
#  zum Download zur Verfügung steht.                                                 #
####################################################################################
*/

{
  "Level": [
    ["$Formula","string","X1==X2?1:0"],
    ["$Out","integer",0],
    ["$Text","string",""],
    ["$Vergleichstext","string","on"],
    ["$Error?","bool",false],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break",["$VAR<Inhibit?>"]],
    ["CalcFormula",["$Text", "$Vergleichstext"],"$Out","$Formula"]
  ],
  "Input": [
    ["Text","Ein String, der sich ändert","$Text","c"],
    ["Vergleichstext","Ein fixer Text, der z.B. als Parameter vorgegeben wird und auf den verglichen werden soll ","$Vergleichstext","c"],
    ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
  ],
  "Output": [
    ["Ergebnis","TRUE, wenn beide String-Eingänge gleich sind, sonst false ","$Out","a"],
    ["Fehler","Wird aktiv wenn ein Berechnungsfehler aufgetreten ist.","$Error?","ce"]
  ]
}
Zuletzt geändert von Robosoc am Di Nov 16, 2021 8:58 am, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

ms20de
Elaborated Networks
Reactions:
Beiträge: 993
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 281 Mal
Danksagung erhalten: 500 Mal

#5

Beitrag von ms20de »

Hallo Micha,

du solltest bei der MQTT-Transaktion den Typ der eingehenden Daten einfach auf Boolean stellen können. Der eingehende Text "on" und "off" wird dann automatisch zu Wahr und Falsch gewandelt und als Boolean im Timberwolf Objektsystem weitergesendet, was dann als 1 und 0 in der Zeitserie ankommen sollte.

Viele Grüße,
Matthias
Zuletzt geändert von ms20de am Di Nov 16, 2021 5:06 pm, insgesamt 2-mal geändert.
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage

Ersteller
Mibr85
Reactions:
Beiträge: 508
Registriert: Mo Dez 02, 2019 5:38 am
Wohnort: Freital
Hat sich bedankt: 395 Mal
Danksagung erhalten: 212 Mal

#6

Beitrag von Mibr85 »

eib-eg hat geschrieben: Di Nov 16, 2021 7:07 am Im MQTT Video wird es zwar nicht direkt gezeigt bei 23:45
sieht man aber das man die zeitserien als Ziel auswählen kann
wie ich aus einem MQTT Wert eimne Zeitserie mache ist mir klar aber leider kann man aus den Werten "on" und "off" keine Zeitserie generieren...

@ Matthias
Mit Boolean hatte ich es zu erste versucht aber leider ohne Ergfolg :-(

Edit:
Hab es noch mal mit Boolean probiert jetzt klappt es, ich werde es mal beobachten :-)
Danke euch
Zuletzt geändert von Mibr85 am Di Nov 16, 2021 7:54 pm, insgesamt 1-mal geändert.
Grüße Micha

TWS 3500 XL #1209 + TWS 2600 #528 + PBM #972,
VPN offen, Reboot möglich
PLZ 01...

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#7

Beitrag von Robosoc »

ms20de hat geschrieben: Di Nov 16, 2021 3:42 pm einfach auf Boolean stellen können. Der eingehende Text "on" und "off" wird dann automatisch zu Wahr und Falsch gewandelt
Gibt es noch andere solche Autokonvertierungsmappings von string zu boolean?
Z.B.
An/Aus
Ein/Aus
Up/Down
Open/Closed...
Day/night
Auf/Ab
usw.?
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

blaubaerli
Reactions:
Beiträge: 2322
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 897 Mal
Danksagung erhalten: 700 Mal

#8

Beitrag von blaubaerli »

Hallo Sven,

irgendwo gab es dazu was. Ich meine mich zu erinnern, dass da in Stefans Film zu MQTT eine Auflistung eingeblendet wurde.

Das „open/closed“ kam aber erst später dazu.

Schau da einfach noch mal rein.

Beste Grüße
Jens
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

blaubaerli
Reactions:
Beiträge: 2322
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 897 Mal
Danksagung erhalten: 700 Mal

#9

Beitrag von blaubaerli »

Ich habe in meiner Screenshotsammlung dazu doch tatsächlich was gefunden:

Bild

Bild

Und dazu gekommen ist "open/close" für die Shelly-Fenster/Türkontakte. Ob "closed" auch konvertiert wird habe ich nicht verifiziert.

Beste Grüße
Jens
Zuletzt geändert von blaubaerli am Mi Nov 17, 2021 6:46 am, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 637 Mal
Danksagung erhalten: 775 Mal

#10

Beitrag von Robosoc »

Danke Jens, sehr interessant. Auch wenn ich keinen konkreten Anwendungsfall habe.
Aber wir schreiben ja aktuell ein wenig an der Logik-Doku und haben da einen Abschnitt zum Thema Autokonvertierung. Da würde ich das gleich mal aufnehmen...auch wenn das am Logik-Zellen Ein- und Ausgang nicht so entscheidend ist wie beim direkten Einlesen von z.B. MQTT-Daten.

Sie wie es auf den Screenshots dargestellt ist, würde ich davon ausgehen, dass die Konvertiereung vollständig Case-Sensitiv ist und "On" (nicht ON und nicht on) somit als FALSE erkannt werden würde.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „MQTT“