Leider nicht. Der String ist nicht JSON konform. Somit liefert json_decode NULL zurück.
Du könntest meinem Beispiel oben folgen, dann klappt es.
hmm der JSON checker befand ihn für gut … schreib do einfach mal wie du ihn gerne hättest
Am liebsten als Array von IDs.
$this->SetValue('Profile_Monitor_RAW', json_encode([47511, 47512, 47513]));
schreibe das bitte mal in JSON
echo json_encode([47511, 47512, 47513]);
Da käme dann wohl das raus {[47511, 47512, 47513]} und das findet da JSON Check doof
sorry … moment - update kommt
weil da
'[47511,47512,47513]'
rauskommt.
Die geschweiften Klammern sind zuviel. Aber warum machst du es dir so kompliziert? Nutze doch json_encode zum Erzeigen des Strings.
jetzt sollte es passen
Besten Dank, der Fall klappt nun.
Nur wenn er keine IDs findet, dann steht
"{}"
in der Variablen.
Das ist auch nicht JSON konform. Es sollte
"[]"
heißen
Wie gesagt, ich kann dir nur json_encode() ans Herz legen
Ja … decode wäre besser … jetzt geht es auch so
Wie sage ich Kunden immer - es muss einen Grund für ein Upgrade geben
Leere JSON kommt jetzt auch als
Ein Hinweis:
ich habe das Modul gerade mal installiert (Modulstore/stable) und wollte dann mit den Voreinstellungen (ohne weitere Konfiguration) die Instanzfunktion Teste und prüfe Profile aufrufen.
Es kommt diese Meldung:
ID Webfront Konfiguration Objekt mit Ident Webfront_Message_Box wurde nicht gefunden in /var/lib/symcon/modules/.store/elueckel.profilemonitor/ProfileMonitor/module.php on line 190
Warning: Variable #0 existiert nicht in /var/lib/symcon/modules/.store/elueckel.profilemonitor/ProfileMonitor/module.php on line 191
Wenn ich den Schalter Daten in HTML-Box für Webfront bereitstellen aktiviere, kommt die Meldung nicht und vice versa.
Das wäre wenn ein Fehler … geh bitte mal auf die Beta. Kann nachher schauen ob ich da was sehe.
bin auf beta gewesen, fast gleicher Fehler
Objekt mit Ident Webfront_Message_Box wurde nicht gefunden in /var/lib/symcon/modules/.store/elueckel.profilemonitor/ProfileMonitor/module.php on line 189
in der Zeile 189
$HTMLBox = '<table><tr><th><b>'.$this->ReadPropertyString("HTMLBoxAktorName").'</b></th></tr><tr><td>'.$this->ReadPropertyString("HTMLBoxNothingFound").'</td></tr></table>';
$Webfront_Message_BoxID = $this->GetIDForIdent('Webfront_Message_Box');
if ($this->ReadPropertyBoolean('Webfront_HTML') == 1) {
SetValueString($Webfront_Message_BoxID, $result);
}
ist das unabgesicherte GetIDForIdent()
so wäre das kein Problem:
$HTMLBox = '<table><tr><th><b>'.$this->ReadPropertyString("HTMLBoxAktorName").'</b></th></tr><tr><td>'.$this->ReadPropertyString("HTMLBoxNothingFound").'</td></tr></table>';
if ($this->ReadPropertyBoolean('Webfront_HTML') == 1) {
$Webfront_Message_BoxID = $this->GetIDForIdent('Webfront_Message_Box');
SetValueString($Webfront_Message_BoxID, $result);
}
so wie in Zeile 217 …
Schaue ich mir am Wochenende an. Danke
funktioniert, kann ich bestätigen
Sorry, ich habe schon wieder Wünsche
-
Viele Variablen werden ja über einen Grenzwert (z.B. 0.25) getriggert. Um abzuschätzen, wie dringend ein Ersatz der Batterie ist, fände ich es gut, wenn bei der Ausgabe der schwachen Batterien auch der Wert der Variablen ausgegeben wird.
-
Bei der Ausgabe werden wie Farben Dunkelgrau und Weiß gesetzt. Das sieht in einem hellen Style nicht so gut aus:
Könntest du das weglassen? -
und dann ist mir bei den vielen Geräten, die ich habe, aufgefallen, dass man gerne wüsste, welche Geräte alle überprüft werden. Also eine vollständige Liste, in der - sortiert nach dem Ort im Objektbaum - alle Variablen mit ihren aktuellen Werten enthalten sind. Alternativ, würde aber auch eine weitere JSON Variable mit einem Array der IDs helfen. Dann könnte man sich die Ausgabe ja selber machen.
Vielleicht kannst du von den Wünschen ja etwas umsetzen.
Burkhard
Hi Burkhard,
alle Wünsche sind umgesetzt … schau mal ob es geht (im Development Branch)