NEU! UPGRADE IP 10 verfügbar!
Timberwolf VISU jetzt mit Graphic V Upgrade
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
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

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

[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: 175
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 19 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 3500XL ID:1412, VPN offen, Reboot erlaubt

Ersteller
0lek
Reactions:
Beiträge: 175
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 19 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 3500XL ID:1412, VPN offen, Reboot erlaubt

blaubaerli
Reactions:
Beiträge: 2322
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 894 Mal
Danksagung erhalten: 700 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
Bitte WIKI lesen.

Ersteller
0lek
Reactions:
Beiträge: 175
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 19 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 3500XL ID:1412, VPN offen, Reboot erlaubt

ms20de
Elaborated Networks
Reactions:
Beiträge: 985
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 281 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: 175
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 19 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 3500XL ID:1412, VPN offen, Reboot erlaubt

StefanW
Elaborated Networks
Reactions:
Beiträge: 9742
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4865 Mal
Danksagung erhalten: 7721 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: 985
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 281 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: 175
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 19 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 3500XL ID:1412, VPN offen, Reboot erlaubt

ms20de
Elaborated Networks
Reactions:
Beiträge: 985
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 281 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“