NEWS
JSON mit Blockly auswerten
- 
					
					
					
					
 Hallo in's Forum, 
 ich betreibe einen Shelly Plus 2PM-Doppelschalter über MQTT (NICHT mit dem Shelly-Adapter, sondern mit dem MQTT-Adapter), der auch zwei Eingänge hat. Diese Eingänge können als "Switch" oder "Button" konfiguriert werden - ich habe sie als "Button" konfiguriert, damit ich auswerten kann, ob jemand den Taster ein, zwei oder drei Mal gedrückt hat. Diese Information wird im Datenpunkt "events/rpc" (in diesem Fall "mqtt.0.shellyplus2pm-d48afc7dbd1c.events.rpc" als JSON abgelegt und hat folgendes Format:{ "src": "shellyplusi4-c4d8d554856c", "dst": "shellyplusi4-c4d8d554856c/events", "method": "NotifyEvent", "params": { "ts": 1742530641.42, "events": [ { "component": "input:0", "id": 2, "event": "single_push", "ts": 1742530641.42 } ] } }Ich möchte dieses JSON mit einem Blockly-Skript auswerten, und zwar folgendermaßen: 
 Zuerst prüfen, ob das Attribut "component" vorhanden ist, um Fehler bei weiteren Abfragen zu vermeiden.
 Wenn "component" vorhanden ist, will ich prüfen ob es den Wert "Input:0" oder "Input:1" hat. Und wenn einer dieser beiden Werte enthalten ist, möchte ich das Attribut "event" auslesen und den ausgelesenen Wert abspeichern.
 "event" kann die Zeichenketten "single_push", "double_push", "triple_push", "btn_down" und "btn_up" annehmen.
 Ich habe mir die folgende Blockly-Lösung ausgedacht: Aber leider funktioniert das nicht, denn offenbar habe ich etwas bei den Attributen oder deren Schreibweise falschgemacht. Denn obwohl das Attribut "params.events[0].component" vorhanden ist, wird die Bedingung "params.events[0].component /= null" nicht erfüllt. (Achtung: "events" ist ein Array, daher [0] als Index). 
 Kann mir jemand helfen und mir sagen, was ich an meinem Blockly ändern muss, damit ich die gewünschten Attribute auslesen kann?
- 
					
					
					
					
 @klausstoertebeker Ich hab Dir doch die Lösung mit dem Alias gezeigt - das ging bei mir. Ich bin nur der Meinung, du solltest unter status suchen. 
- 
					
					
					
					
 Das hat ja auch funktioniert, ich habe auch gerade geantwortet: siehe hier 
 Aber ich wollte Dich nicht mit Blockly nerven, und Node Red kann ich (noch) nicht...
- 
					
					
					
					
 @klausstoertebeker Das Du auf das blaue "null" überprüfst ist richtig - aber was das Beschreiben mit einem String "null" sein soll, das ist wahrscheinlich verkehrt. Ich würde halt mal Debugs einbauen, dann siehst Du ob in die Bedinung reingesprungen wird. 
- 
					
					
					
					
 @klausstoertebeker sagte: Blockly ändern muss, damit ich die gewünschten Attribute auslesen kann?  Das Schreiben eines Strings "null" macht keinen Sinn. 
 
		
	 
		
	 
			
		 
			
			