UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[Gelöst] [V3.5.1] MQTT String wird abgeschnitten / Problem bei Logik (WD-2201)

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
0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

[V3.5.1] MQTT String wird abgeschnitten / Problem bei Logik (WD-2201)

#1

Beitrag von 0lek »

Use case:

1. Home Assistant als Visu "bastelt" eine cron expression
2. Die geht ueber MQTT and TWS
3. Wird dann als Input in eine Logik fuer den Cron-Baustein verwendet.

Leider wird die Expression abgesschnitten:

Code: Alles auswählen

/**
 * New custom logic
 *
 * 
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.00",
    "Icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxjaXJjbGUgc3R5bGU9ImZpbGw6I0Y4RTk5QjsiIGN4PSIyNTIuMjc4IiBjeT0iMjU1Ljk5OCIgcj0iMjUyLjI3OCIvPg0KPHBhdGggc3R5bGU9ImZpbGw6I0Y2RTI3RDsiIGQ9Ik0yNTIuMjc4LDMuNzI0VjUwOC4yOGMxMzkuMzI5LDAsMjUyLjI3OC0xMTIuOTQ5LDI1Mi4yNzgtMjUyLjI3OFMzOTEuNjA4LDMuNzI0LDI1Mi4yNzgsMy43MjR6Ii8+DQo8cGF0aCBzdHlsZT0iZmlsbDojQTU4ODY4OyIgZD0iTTE1OS4zMzQsMzI5LjAzYy0zMC45MDEsMC02MC43NjItMTQuNzUyLTYyLjAxOC0xNS4zODFsMTcuNzcyLTM1LjY0OA0KCWMwLjIyNywwLjExMiwyMi45MDYsMTEuMTk2LDQ0LjI0NiwxMS4xOTZjMjEuMjU5LDAsNDMuOTgtMTEuMDYzLDQ0LjIwNC0xMS4xNzVsMTcuODEzLDM1LjYyNw0KCUMyMjAuMDk2LDMxNC4yNzgsMTkwLjIzNSwzMjkuMDMsMTU5LjMzNCwzMjkuMDN6Ii8+DQo8cGF0aCBzdHlsZT0iZmlsbDojOTQ3ODU5OyIgZD0iTTM0NS4yMjMsMzI5LjAzYy0zMC45MDEsMC02MC43NjItMTQuNzUyLTYyLjAxOC0xNS4zODFsMTcuNzcyLTM1LjY0OA0KCWMwLjIyNywwLjExMiwyMi45MDYsMTEuMTk2LDQ0LjI0NiwxMS4xOTZjMjEuMjU5LDAsNDMuOTgxLTExLjA2Myw0NC4yMDQtMTEuMTc1bDE3LjgxNCwzNS42MjcNCglDNDA1Ljk4NSwzMTQuMjc4LDM3Ni4xMjQsMzI5LjAzLDM0NS4yMjMsMzI5LjAzeiIvPg0KPHBhdGggc3R5bGU9ImZpbGw6I0E1ODg2ODsiIGQ9Ik0yNTIuMjc4LDQzNS4yNTJjLTE0LjY0MywwLTI2LjU1Ni0xMS45MTMtMjYuNTU2LTI2LjU1NmMwLTE0LjY0MywxMS45MTMtMjYuNTU2LDI2LjU1Ni0yNi41NTYNCgljMTQuNjQ1LDAsMjYuNTU2LDExLjkxMywyNi41NTYsMjYuNTU2QzI3OC44MjksNDIzLjM0MiwyNjYuOTE2LDQzNS4yNTIsMjUyLjI3OCw0MzUuMjUyeiIvPg0KPGc+DQoJPHBvbHlnb24gc3R5bGU9ImZpbGw6IzM4NjJDQzsiIHBvaW50cz0iMjc4LjgzNCwyMjIuODEgMTkyLjUyOCwyMjIuODEgMTc4LjQ0NiwxODguODExIDIyNC4xMTIsMTQzLjE0MyAxODUuODg5LDE0My4xNDMgDQoJCTE4NS44ODksMTAzLjMxIDI3Mi4xOTUsMTAzLjMxIDI4Ni4yNzcsMTM3LjMxIDI0MC42MTEsMTgyLjk3NyAyNzguODM0LDE4Mi45NzcgCSIvPg0KCTxwb2x5Z29uIHN0eWxlPSJmaWxsOiMzODYyQ0M7IiBwb2ludHM9IjM5MS42OTUsMTk2LjI1MiAzMDUuMzg5LDE5Ni4yNTIgMjkxLjMwNywxNjIuMjUzIDMzNi45NzMsMTE2LjU4NSAyOTguNzUxLDExNi41ODUgDQoJCTI5OC43NTEsNzYuNzUyIDM4NS4wNTYsNzYuNzUyIDM5OS4xMzksMTEwLjc1MiAzNTMuNDcyLDE1Ni40MTggMzkxLjY5NSwxNTYuNDE4IAkiLz4NCgk8cG9seWdvbiBzdHlsZT0iZmlsbDojMzg2MkNDOyIgcG9pbnRzPSI1MDQuNTU2LDE2OS42OTYgNDE4LjI1MSwxNjkuNjk2IDQwNC4xNjgsMTM1LjY5NyA0NDkuODM1LDkwLjAyOSA0MTEuNjEyLDkwLjAyOSANCgkJNDExLjYxMiw1MC4xOTYgNDk3LjkxOCw1MC4xOTYgNTEyLDg0LjE5NyA0NjYuMzM0LDEyOS44NjMgNTA0LjU1NiwxMjkuODYzIAkiLz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjwvc3ZnPg0K"
  },
  "Input": [
      ["Enable ","Enable this logic","$Enable","c"],
      ["Trigger time","Time at which to trigger logic","$CronExpr","c"]
  ],
  "Output": [
      ["Scene","scene","$OutScene","ct"],
      ["Next trigger","When will this be triggered next?","$NextTrigger","c"]
  ],
  "Level": [
      ["$Enable","bool",true],
      ["$CronExpr","string","0 30 19 * * 0,1,2,3,4,5,6"], // Fall back to 19:30
      ["$OutB","bool",false],
      ["$NextTrigger","integer",0],
      ["$SceneNum","integer",6],
      ["$OutScene","integer",999]
  ],
  "Module": [
      ["Cron","$Enable","$OutB","$NextTrigger","$CronExpr"], // Trigger OutB when the time has come
      ["Latch","$SceneNum","$OutScene","$OutB",0] // Push $SceneNum to $OutScene when $OutB tru
  ]
}
MQTT:

Bild

LOGIK:

Bild

Man sieht ja schoen dass der Timestamp erst Sonntag ist, aber die cron expression die der TWS bekommt jeden Tag aktiv ist. Das ist weil irgendwo alles nach der 0 abgeschnitten wird.

Hilfe?

Danke
Aleksander
Zuletzt geändert von Parsley am Fr Nov 10, 2023 12:14 am, insgesamt 3-mal geändert.
TWS 950Q ID:676, VPN offen, Reboot erlaubt

Ersteller
0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#2

Beitrag von 0lek »

Keiner eine Idee? :(:(:(

@ms20de, @StefanW ?

Weil leider ist das jetzt nicht benutzbar fuer mich.

Danke
Aleksander
TWS 950Q ID:676, VPN offen, Reboot erlaubt

blaubaerli
Reactions:
Beiträge: 2308
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 884 Mal
Danksagung erhalten: 677 Mal

#3

Beitrag von blaubaerli »

Hallo Aleksander,

so wie ich das verstanden habe, ist der initiale Wert bei der Definition des Levels auf einen langen Wert zu setzen. Also z.B. auf „XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX“

Sodass du dort mindesten deinen längstmöglichen technisch notwendigen String definierst.

Wenn sich dann der Inhalt des Levels innerhalb der Logik ändert, stört das dann nicht.

Probier das mal.

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

Ersteller
0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#4

Beitrag von 0lek »

@blaubaerli Danke. Aber m.E. nach ist das ja getan mit:

Code: Alles auswählen

["$CronExpr","string","0 30 19 * * 0,1,2,3,4,5,6"]
Und der String hier ist ja LAENGER als der, der im Objekt MQ1 ankommt.
TWS 950Q ID:676, VPN offen, Reboot erlaubt

ms20de
Elaborated Networks
Reactions:
Beiträge: 974
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 280 Mal
Danksagung erhalten: 499 Mal

#5

Beitrag von ms20de »

Hallo Aleksander,

das Problem scheint in der Logik zu liegen, auf der Seite von MQTT sehe ich keine Probleme.
Der String-Eingang welcher hier fix einmal vorkommt, scheint sich anderes zu verhalten als die Eingänge die man variabel hinzufügen kann.
Muss ich klären.

Viele Grüße,
Matthias
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage

Ersteller
0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#6

Beitrag von 0lek »

@ms20de Matthias, danke fuers gucken.

Aber ist der String nicht schon im ersten Screenshot abgeschnitten? M.E. nach (wobei Du natuerlich alles besser verstehst ;)) kommt der String ganz bei MQTT an und wird dann beim "ueberspielen" in das MQ1 Objekt abgeschnitten. Weil guck mal - ich habe jetzt die Transaction geloescht, nochmal eingestellt und nochmal den String uebergeben, ohne das an eine Logik zu binden:

Bild
Bild
Im mouse-over sehe ich ja den "full value". Und der ist schon hier abgeschnitte, BEVOR das ueberhaupt an eine Logik geht!

Danke fuers kuemmern und Gruesse,
Aleksander
Zuletzt geändert von 0lek am Fr Nov 11, 2022 12:39 pm, insgesamt 1-mal geändert.
TWS 950Q ID:676, VPN offen, Reboot erlaubt

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7633 Mal
Kontaktdaten:

#7

Beitrag von StefanW »

Hi Aleksander,

wir speichern nur bis 14 Stellen für die Anzeige auf der Oberfläche, intern würden auch Megabyte vom Dispatcher weitergereicht.

Man kann also aus der Oberfläche her nicht sagen, wo was abgeschnitten wird.

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

ms20de
Elaborated Networks
Reactions:
Beiträge: 974
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 280 Mal
Danksagung erhalten: 499 Mal

#8

Beitrag von ms20de »

0lek hat geschrieben: Fr Nov 11, 2022 12:38 pm @ms20de Matthias, danke fuers gucken.

Aber ist der String nicht schon im ersten Screenshot abgeschnitten?
Ja, es sieht so aus, ist aber nicht so. Wir haben die drei Punkte hinzugefügt, damit man erkennen kann dass der String noch länger ist. Die kurze Zwischenspeicherung des letzten Objektwertes für die Anzeige ist aus Performancegründen, damit der Timberwolf auch locker mit 100.000 Objekten umgehen kann. Dass da in diesem Fall Full Value steht ist etwas unglücklich und sollten wir ändern.

Wenn du es selbst testen möchtest, was auch für die Fehlersuche hilfreich sein kann: Zeichenketten können auch in eine Zeitserie geschrieben werden. Einfach das Ergebnis von MQTT mit neuer Zeitserie verknüpfen und in Grafana öffnen, beides direkt im Verknüpfungsmanager (DOS) möglich. In Grafana die Visualisierung auf Tabelle umstellen.

Viele Grüße,
Matthias
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage

Ersteller
0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#9

Beitrag von 0lek »

Matthias,

Danke, macht Sinn. War nicht ganz klar. Ich hab's mit Grafana getestet, und es stimmt - die Cron Expression kommt absolut richtig in der Logik an (bzw. in dem MQ1 obiekt). D.h. irgendwas in der Logik scheint nicht zu stimmen.

Soll ich sonst noch was testen?

Aleksander
TWS 950Q ID:676, VPN offen, Reboot erlaubt

ms20de
Elaborated Networks
Reactions:
Beiträge: 974
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 280 Mal
Danksagung erhalten: 499 Mal

#10

Beitrag von ms20de »

Hallo Aleksander,

Bild

mein Kollege hat das Problem gefunden. Der Fix wird voraussichtlich in der Insider Version 2 für die 4.0 enthalten sein.

Viele Grüße,
Matthias
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
Antworten

Zurück zu „MQTT“