Moin zusammen,
ich habe heute ein wenig an meinen Flower Power Skripten geschraubt, und bin dabei auf eine sehr unangenehme Geschichte gestossen. Und zwar bekomme ich von einem BT RaspberryPI Hub Daten meiner FlowerPower Devices. Und zwar per Webserver und Textdatei… ähnlich diesem hier…
Tue Feb 23 2016 14:00:03 GMT+0100 (CET)
Start discover phase (10 Sek) ...
Found FlowerPower device 9003b7e7dded
Found FlowerPower device a0143d07c9dd
Start data phase...
connectAndSetup
connectAndSetup
[9003b7e7dded] serial number = PI040297AA3K015149
[9003b7e7dded] soil temperature = 22.66
[9003b7e7dded] air temperature = 25.25
[9003b7e7dded] soil moisture = 16.34
[9003b7e7dded] sunlight = 0.86
[9003b7e7dded] battery level = 100
[9003b7e7dded] soil electrical conductivity = 363.00
[9003b7e7dded] disconnected!
[a0143d07c9dd] serial number = PI040297AA3L025048
[a0143d07c9dd] soil temperature = 22.16
[a0143d07c9dd] air temperature = 24.89
[a0143d07c9dd] soil moisture = 11.22
[a0143d07c9dd] sunlight = 0.39
[a0143d07c9dd] battery level = 89
[a0143d07c9dd] soil electrical conductivity = 222.00
[a0143d07c9dd] disconnected!
Stop script...
Daraus parse ich dann per PHP Skript die Daten und erzeuge automatisch Variablen usw.
Jede Zeile geht durch
$value = trim(explode("=",$logLine)[1]);
$value = str_replace(".",",",$value);
und wird dann am Ende mit
CreateVariable("Seriennummer", 3,$value , "ident", $catID );
geschrieben.
Es lief schon eine ganze Weile, bis dann plötzlich die ganze IPS Geschichte abgestürzt ist.
Nach kleiner Recherche habe ich dann folgendes im Logfile gefunden…
Array
(
[9003b7e7dded] => Array
(
[serialNumber] => PI040297AA3K015149
[soilTemperature] => -10,00
[airTemperature] => -10,00
[soilMoisture] => 21,56
[sunlight] => Infinity
[batteryLevel] => 100
[soilElectricalConductivity] => 0,00
)
[a0143d07c9dd] => Array
(
[serialNumber] => PI040297AA3L025048
[soilTemperature] => 22,16
[airTemperature] => 26,33
[soilMoisture] => 11,47
[sunlight] => 0,92
[batteryLevel] => 88
[soilElectricalConductivity] => 221,00
)
)
CreateCategory: ( PI040297AA3K015149, PI040297AA3K015149, 52355 )
CreateVariable: ( Seriennummer, 3, PI040297AA3K015149, _serialNumber, 21313 )
CreateVariable: ( Bodentemperatur, 2, -10,00, _soilTemperature, 21313 )
CreateVariable: ( Lufttemperatur, 2, -10,00, _airTemperature, 21313 )
CreateVariable: ( Bodenfeuchtigkeit, 2, 21,56, _soilMoisture, 21313 )
CreateVariable: ( PFD, 2, Infinity, _sunlight, 21313 )
CreateVariable: ( Zustand Batterie, 1, 100, _batteryLevel, 21313 )
CreateVariable: ( Letzte Meldung, 1, 1456231502, _lastMessage, 21313 )
CreateVariable: ( Bodenleitfähigkeit, 2, 0,00, _soilElectricalConductivity, 21313 )
CreateVariable: ( Bild, 3, Bild eintragen!<img src=''>, _picture, 21313 )
CreateCategory: ( PI040297AA3L025048, PI040297AA3L025048, 52355 )
CreateVariable: ( Seriennummer, 3, PI040297AA3L025048, _serialNumber, 24832 )
CreateVariable: ( Bodentemperatur, 2, 22,16, _soilTemperature, 24832 )
CreateVariable: ( Lufttemperatur, 2, 26,33, _airTemperature, 24832 )
CreateVariable: ( Bodenfeuchtigkeit, 2, 11,47, _soilMoisture, 24832 )
CreateVariable: ( PFD, 2, 0,92, _sunlight, 24832 )
CreateVariable: ( Zustand Batterie, 1, 88, _batteryLevel, 24832 )
CreateVariable: ( Letzte Meldung, 1, 1456231502, _lastMessage, 24832 )
CreateVariable: ( Bodenleitfähigkeit, 2, 221,00, _soilElectricalConductivity, 24832 )
CreateVariable: ( Bild, 3, Bild eintragen!<img src=''>, _picture, 24832 )
Besonderes Augenmerk hier mal bitte auf die Zeile "CreateVariable: ( PFD, 2, Infinity, _sunlight, 21313 ) "
Dort steht als Value Infinity…
Wenn ich jetzt in meiner Settings.json schaue, ist genau an dem Value EIntrag alles im Mors gegangen.
"ID43358": {
"position": 0,
"readOnly": false,
"ident": "_soilMoisture",
"hidden": false,
"disabled": false,
"type": 2,
"name": "Bodenfeuchtigkeit",
"info": "",
"icon": "",
"parentID": 21313,
"data": {
"action": 0,
"customAction": 0,
"profile": "",
"lastUpdate": 1456232400,
"value": 21.56,
"customProfile": "~Humidity.F",
"lastChange": 1456231800,
"type": 2
}
},
"ID38069": {
"position": 0,
"readOnly": false,
"ident": "_sunlight",
"hidden": false,
"disabled": false,
"type": 2,
"name": "PFD",
"info": "",
"icon": "",
"parentID": 21313,
"data": {
"action": 0,
"customAction": 0,
"profile": "",
"lastUpdate": 1456232400,
"value":
Das ist das Ende vom File… danach kommt nix mehr.
Das MUSS ein Fehler sein.
Was sagt der Chef?