+ Antworten
Ergebnis 1 bis 10 von 10
  1. #1
    Registriert seit
    Nov 2014
    Ort
    Göppingen
    Beiträge
    10

    Standard InfluxDB Schreibfehler im Script Fehlermeldung 'invalid field format'

    Guten morgen zusammen,
    ich habe mir auf einem RPi mit Stretch InfluxDB und Grafana zur Visualisierung installiert. Datenbank habe ich angelegt und kann auch rein schreiben. Allerdings nur ganze Zahlen, ohne Komma. Wenn ich eine Zahl mit einem Komma, besipielsweise eine Spannung (12,4V) übertragen möchte, kommt diese Fehlermeldung:

    {"error":"unable to parse 'sma_batt_spannung,gruppe1=batt1 spannung=12,55': invalid field format"}

    Das Script sieht so aus:

    PHP-Code:
    <?
    $out 
    ="http://IPADRESSE:8086/write?db=spannungen";
     
    $spannung GetValueFloat(42716 /*[Gewerke\Energie\Batterie\Strang 1\Batterie 1/1\Spannung Block 1]*/) ;
    $ch curl_init($out);
     
    curl_setopt($chCURLOPT_RETURNTRANSFER);
    curl_setopt($chCURLOPT_POST,           );
    curl_setopt($chCURLOPT_POSTFIELDS,     "sma_batt_spannung,gruppe1=batt1 spannung=" $spannung );
     
    $result=curl_exec ($ch);
    $error=curl_error($ch) ;
     
    echo 
    $result ;
    echo 
    $error ;
    ?>
    Wenn ich "$spannung" ersetze gegen eine ganze Zahl ohne Komma, wird diese in die InfluxDB geschrieben. Sobald ein Komma da drin ist geht es nicht und es kommt die Fehlermeldung. Ein Freund von mir benutzt genau das gleiche System (allerdings als Docker) und bei Ihm funktioniert das Script einwandfrei.

    Weis jemand Rat?

  2. #2
    Registriert seit
    Oct 2010
    Ort
    Paderborn
    Beiträge
    2,889

    Vielleicht musst du die Zahl mit einem Dezimalpunkt übergeben?
    Probiere es mal mit 12.55.
    HM per RaspberryMatic | EKM-868 | LGS-868 | 1 Wire | Fibaro Motion Sensor & Aeon Labs Z-Stick S2 | SONOS | Denon AVR 3312 | Vu+ Ultimo 4K | Sony KD-75XE9405 | Fritzbox 6360 | Hikvision DS-2CD2686G2-IZS | Echo Dot + Show | Stall.biz AirSniffer | Vaillant eBUS | Intel NUC i3 | IPS V5.5 Beta

  3. #3
    Registriert seit
    Nov 2014
    Ort
    Göppingen
    Beiträge
    10

    Das habe ich auch schon mal probier, kommt der gleiche Fehler.

  4. #4
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,628

    Wie hast du es probiert?
    Es liegt zu 99% am Komma.
    Thema hatten wir hier erst mit MySQL.
    Float Werte kommen gerundet in der MySQL Datenbank an
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  5. #5
    Registriert seit
    Nov 2014
    Ort
    Göppingen
    Beiträge
    10

    Natürlich liegt es Komma ich probiere es mal anders aus. Vielleicht kann ich die Variable mit Punkt oder ohne Trennzeichen einlesen, es dann aber im Script hinzufügen lassen.

    Danke schonmal bis jetzt.

  6. #6
    Registriert seit
    Feb 2011
    Beiträge
    689

    Und warum funktioniert es bei mir mit einem Komma in der ausgelesenen Variable ?
    In die Datenbank wird jedoch ein Punkt geschrieben... ^^

    Selbe Konstellation außer, dass meine jeweils in eigenen Docker Containern laufen und nicht nativ auf einem Pi :

    • symcon 5.0
    • influxDB


    Name:  Byuo9CO.jpg
Hits: 177
Größe:  11.5 KB


    PHP-Code:
    <?
    $out 
    ="http://192.168.2.2:8086/write?db=spannungen";
     
    $spannung GetValueFloat(19745 /*[Scripte\Batteriegruppe 1 - (Bj 2017)\Block - 1\Block - 1/4]*/) ;
    $ch curl_init($out);
     
    curl_setopt($chCURLOPT_RETURNTRANSFER);
    curl_setopt($chCURLOPT_POST,           );
    curl_setopt($chCURLOPT_POSTFIELDS,     "sma_batt_spannung,gruppe1=batt1 spannung=" $spannung );
     
    $result=curl_exec ($ch);
    $error=curl_error($ch) ;
     
    echo 
    $result ;
    echo 
    $error ;
    ?>

    Ergebnis:

    Code:
      [                                                                                                                        
                                "2019-01-03T07:47:06.806601157Z",                                                                                    
                                13.91                                                                                                                
                            ],                                                                                                                       
                            [                                                                                                                        
                                "2019-01-03T07:47:43.499864826Z",                                                                                    
                                13.9                                                                                                                 
                            ],                                                                                                                       
                            [                                                                                                                        
                                "2019-01-03T07:48:25.825356312Z",                                                                                    
                                13.91                                                                                                                
                            ],                                                                                                                       
                            [                                                                                                                        
                                "2019-01-03T07:49:08.135719304Z",                                                                                    
                                13.9                                                                                                                 
                            ],                                                                                                                       
                            [                                                                                                                        
                                "2019-01-03T07:49:22.248340539Z",                                                                                    
                                13.91                                                                                                                
                            ],                                                                                                                       
                            [                                                                                                                        
                                "2019-01-03T07:49:50.458020197Z",                                                                                    
                                13.9                                                                                                                 
                            ],                                                                                                                       
                            [                                                                                                                        
                                "2019-01-03T07:50:04.559640056Z",                                                                                    
                                13.91                                                                                                                
                            ],                                                                                                                       
                            [                                                                                                                        
                                "2019-01-03T07:50:18.667560173Z",                                                                                    
                                13.9                                                                                                                 
                            ],
    Geändert von thezepter (03.01.19 um 10:21 Uhr)
    IPS 5.3 @ Synology Docker DS916+ / RaspBerryMatic / ipsView / Sonos / PhilipsHue / Z-Wave / Unifi Protect / Ubiquity / Amazon Echo

  7. #7
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,628

    Dazu sind weiter Infos wichtig.
    Welche IPS (PHP) Version?
    Und dann ist die Konvertierung durch PHP von Float zu String abhängig von der Spracheinstellung.
    Steht ein System nicht auf deutsch?
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  8. #8
    Registriert seit
    Feb 2011
    Beiträge
    689

    Hab ne Lösung für dich

    PHP-Code:
    <?
    $out 
    ="http://192.168.1.60:8086/write?db=spannungen";
     
    $spannung GetValueFloat(42716 /*[Gewerke\Energie\Batterie\Strang 1\Batterie 1/1\Spannung Block 1]*/) ;
    $ch curl_init($out);
     
    curl_setopt($chCURLOPT_RETURNTRANSFER);
    curl_setopt($chCURLOPT_POST,           );
    curl_setopt($chCURLOPT_POSTFIELDS,     "sma_batt_spannung,gruppe1=batt1 spannung=" number_format($spannung/1,1,'.','') );
     
    $result=curl_exec ($ch);
    $error=curl_error($ch) ;
     
    echo 
    $result ;
    echo 
    $error ;
    ?>
    So sollte es klappen. Hab es aus dem Ursprungsscript

    Warum es bei mir ohne geht weiß ich nicht.. vielleicht liegt es ja an einen der Dinge, die Michael erwähnt hat.....

    Viel Spaß damit
    IPS 5.3 @ Synology Docker DS916+ / RaspBerryMatic / ipsView / Sonos / PhilipsHue / Z-Wave / Unifi Protect / Ubiquity / Amazon Echo

  9. #9
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,628

    Zitat Zitat von TecDoc Beitrag anzeigen
    Natürlich liegt es Komma ich probiere es mal anders aus. Vielleicht kann ich die Variable mit Punkt oder ohne Trennzeichen einlesen, es dann aber im Script hinzufügen lassen.

    Danke schonmal bis jetzt.
    Das probiert?
    PHP-Code:
    $spannungsprintf('%F'$spannung); 
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  10. #10
    Registriert seit
    Nov 2014
    Ort
    Göppingen
    Beiträge
    10

    Entschuldigt bitte, ich habe noch nicht so viele Beiträge hier geschrieben, sondern immer selbst viel probiert und nachgelesen bis es letztendlich funktioniert hatte.

    Ich trage das mal in meiner Signatur nach, was ich alles für Versionen habe.


    Mit dieser Version hat es funktioniert:
    PHP-Code:
    <?
    $out 
    ="http://IPADRESSE:8086/write?db=spannungen";
     
    $spannung GetValueFloat(42716 /*[Gewerke\Energie\Batterie\Strang 1\Batterie 1/1\Spannung Block 1]*/) ;
    $ch curl_init($out);
     
    curl_setopt($chCURLOPT_RETURNTRANSFER);
    curl_setopt($chCURLOPT_POST,           );
    curl_setopt($chCURLOPT_POSTFIELDS,     "sma_batt_spannung,gruppe1=batt1 spannung=" number_format($spannung/1,1,'.','') );
     
    $result=curl_exec ($ch);
    $error=curl_error($ch) ;
     
    echo 
    $result ;
    echo 
    $error ;
    ?>
    Hallo Michael,
    bei deiner Variante bekomme ich diese Fehlermeldung:
    Code:
    Parse error:  syntax error, unexpected ';', expecting ',' or ')' in /var/lib/symcon/scripts/29310.ips.php on line 10
    Abort Processing during Fatal-Error: syntax error, unexpected ';', expecting ',' or ')'
       Error in Script /var/lib/symcon/scripts/29310.ips.php on Line 10
    Aber es funktioniert jetzt. Vielen Dank für eure Hilfe!!

Ähnliche Themen

  1. (iOS) Format error: Invalid profile association
    Von ChristianL im Forum Mobile (iOS/Android)
    Antworten: 26
    Letzter Beitrag: 08.03.19, 22:22
  2. Antworten: 3
    Letzter Beitrag: 19.06.18, 20:52
  3. 'Invalid vector" Fehlermeldung bei IPS_CreateMedia
    Von bumaas im Forum Allgemeine Diskussion
    Antworten: 6
    Letzter Beitrag: 11.08.16, 12:31
  4. Antworten: 8
    Letzter Beitrag: 11.12.10, 18:07

Stichworte