Radar basierter WiFi-Niederschlagssensor für Regen, Hagel und Schnee

Begonnen von chunter1, 10 Juni 2017, 13:07:48

Vorheriges Thema - Nächstes Thema

chunter1

Zitat von: HCS am 25 September 2017, 10:35:59
Ja, eben, ...  :(
Dafür kannst du jetzt bis 228,5 km/h messen... also die Sachen die bei einem Hurrikan der Kategorie 4 herumfliegen. ;)
...
Das ist nur ein Nebeneffekt - nicht der eigentliche Grund für die Änderungen.

HCS

Zitat von: chunter1 am 25 September 2017, 10:41:08
Dafür kannst du jetzt bis 228,5 km/h messen... also die Sachen die bei einem Hurrikan der Kategorie 4 herumfliegen. ;)
Aber nur so lange, bis etwas davon das Radar getroffen hat ...  ;D ;D ;D

chunter1

#542
Zitat von: HCS am 25 September 2017, 11:03:11
Aber nur so lange, bis etwas davon das Radar getroffen hat ...  ;D ;D ;D
Ja, oder dein Haus fliegt mit 228,5 km/h durch die Luft.
Nur gut, dass wir den BME280 haben - damit können wir zumindest die Flughöhe bestimmen.  ;D

SusisStrolch

Ich habe auch Interesse an der Verstärkerplatine.
Wie sieht es mit dem ESP aus - gibt's da auch eine?
Oder wird der nur auf Lochraster gedübelt?
Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

PeMue

Hey Strolch,

Zitat von: SusisStrolch am 27 September 2017, 19:57:09
Wie sieht es mit dem ESP aus - gibt's da auch eine?
mal langsam, ich komme sonst aus dem Layouten nicht mehr raus  ;)
Vermutlich schon, aber die Kollegen können sich wahrscheinlich nicht auf ein ESP32 Modul einigen  ;D ;D ;D

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

HCS

Zitat von: chunter1 am 25 September 2017, 11:06:36
Nur gut, dass wir den BME280 haben - damit können wir zumindest die Flughöhe bestimmen.  ;D
Ja, und noch besser ist, dass die I2C-Kommunikation problemlos läuft.
Ich lasse es mal noch bis morgen probelaufen, dann checke ich es ein.

Internals:
   Alive      2017-09-30 11:34:20
   DEF        192.168.31.213:81
   DeviceName 192.168.31.213:81
   FD         20
   MSGCNT     86
   NAME       Radar213
   NR         119
   NTFY_ORDER 50-Preci213
   PARTIAL
   STATE      initialized UpTime: 0Tg. 0Std. 20Min. 0Sek.  detections: ?
   TIME       2017-09-30 11:34:14
   TIMEOUT    0.5
   TYPE       PrecipitationSensor
   UPTIME     0Tg. 0Std. 20Min. 8Sek.
   VERSION    0.12.0
   nextOpenDelay 2
   READINGS:
     2017-09-30 11:34:14   ADCclipping     0
     2017-09-30 11:34:14   ADCoffset       132
     2017-09-30 11:34:14   ADCpeak         41
     2017-09-30 11:34:14   Debug0          132 161 126 103 128 207 109 75 78 119 221 118 82 83 117 224 114 82 78 117 218 115 78 76 114 212 112 78 78 111 205 111
     2017-09-30 11:34:14   DominantGroup   8
     2017-09-30 10:38:50   GroupDetections
     2017-09-30 11:34:14   GroupMagAVG     52.4761 85.0781 60.7927 91.3222 54.8661 70.4089 63.1488 41.2006 55.0144 29.8146 34.0675 25.7915 14.3771 14.2899 5.1023 2.6400 1.8876 3.3506 7.8626 7.1252 10.7095 11.6400 8.9101 12.8045 8.0889 9.8571 8.1121 5.2272 5.4611 2.7927 2.4336 1.1921
     2017-09-30 11:34:14   GroupMagAVGkorr 0.8002 3.1614 3.6211 7.7709 6.0770 9.3732 10.1584 7.5575 11.4883 6.9932 8.7496 7.3356 4.4169 4.7430 1.8244 0.9989 0.7759 1.4497 3.6015 3.4389 5.4147 6.2037 4.9516 7.4389 4.9037 6.2009 5.3251 3.5521 3.8471 2.0370 1.8317 0.9280
     2017-09-30 11:34:14   GroupMagAVGkorrDom 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 11.4883 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
     2017-09-30 10:38:50   GroupMagAVGkorrThresh 1.15946019 4.22524118 4.89815521 10.45950603 8.30771923 12.78659534 13.88718510 10.53844357 15.79672909 9.90201664 12.28504753 10.36750603 6.51286793 6.95875406 2.98413086 1.83603907 1.55797064 2.70018196 5.85330200 5.73452330 8.91242027 9.96249866 8.95709610 11.97941875 9.43607998 11.25554085 9.62078857 7.89173603 7.32998419 5.09646559 4.08221292 2.31972861
     2017-09-30 11:34:14   GroupMagMax     207 224 218 212 196 187 169 146 133 111 99 74 52 42 23 17 11 17 24 27 31 35 33 33 31 29 27 21 18 13 11 6
     2017-09-30 10:38:50   GroupMagPeak    1407 411 411 420 302 378 359 275 260 189 166 130 108 71 82 86 46 54 49 52 58 78 54 62 52 57 43 39 41 29 32 30
     2017-09-30 11:34:14   Humidity        57
     2017-09-30 11:34:14   MagAVG          13.6487
     2017-09-30 11:34:14   MagAVGkorr      3.7171
     2017-09-30 10:38:50   MagAVGkorrThresh 245.60
     2017-09-30 11:34:14   MagMax          224
     2017-09-30 10:38:50   MagPeak         1407
     2017-09-30 11:34:14   Pressure        1018
     2017-09-30 11:34:14   RBoverflows     0
     2017-09-30 11:34:14   Temperature     23.4
     2017-09-30 11:34:14   snapshots       1200
     2017-09-30 11:34:14   state           initialized
   helper:
Attributes:
   disable    0
   room       .Radar
   stateFormat {ReadingsVal("Radar213", "state", "") . " UpTime: " . InternalVal("Radar213", "UPTIME", "?"). " detections: " . ReadingsVal("Radar213", "detections", "?");}
   timeout    15

PeMue

Hallo zusammen,

ich habe hier die nächste Version der Platine angefügt. Wenn nichts dagegen spricht, gehe ich dann so ins Rennen (die anderen Platinen sind auch fertig).

Gruß Peter

Edit: Auf der Platine ist es schon ziemlich eng  :o
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

chunter1

Zitat von: justme1968 am 26 Juni 2017, 16:40:57
farbkodierung der häufigkeit ist noch nich nicht mit dabei da sich im svg plot aktuell die farben nur auf 6 oder 8 die vordefinierten linien farben setzen lassen. das ist für eine häufigkeitsverteilung natürlich nicht ausreichend. ich habe schon eine idee wie man das erweitern kann und schlage rudi einen patch vor sobald ich dazu komme.

Hi justme1968,
gibts zum Thema Patch für mehr Farben im SVG Plot was neues?
Zusätzliche Farben in den stylesheets zu definieren wäre momentan das einfachste, oder?

HCS

BME280 ist drin und eingecheckt.
Die angehängten Schirmschüsse erklären wohl das meiste.

Der BME280 ist optional und wird automatisch erkannt, sofern angeschlossen.
Auf der Setup-Page kann man die Höhe über NN konfigurieren, damit man einen auf Meereshöhe normalisierten Luftdruck bekommt.
Auf der Hardware-Page werden die aktuellen Werte angezeigt, bei jeden refresh der Hardware-Page werden sie aktuell gemessen.
Das KVP schickt sie an FHEM mit, gemessen wird immer dann, wenn Daten vom Radar übermittelt werden, also im konfigurierten Publish interval.

Die aktuelle Pin-Belegung:
* Pins used:
* ==========
* 32 ... 39 Senor (ADC) (one of them, defined on the setup page)
* 27        Watchdog
* 21        SDA + 4k7 PU  BME280
* 22        SCL + 4k7 PU  BME280


Wenn man ein BME280-Breakout verwendet, sind da die PullUps üblicherweise schon mit drauf.


HCS

Zitat von: PeMue am 30 September 2017, 22:12:25
Edit: Auf der Platine ist es schon ziemlich eng  :o
Schwieriger als die LGW-Nano kann es aber nicht sein, oder?  ;)

chunter1, schaust Du nochmal drauf, dass wir ihn von der Leine lassen können?

chunter1

Zitat von: PeMue am 30 September 2017, 22:12:25
Wenn nichts dagegen spricht, gehe ich dann so ins Rennen (die anderen Platinen sind auch fertig).
Schaut gut aus - kann losgehn!

chunter1

#551
Anbei ein Screenshot von den Daten meines senkrecht nach unten ins "Freie" blickenden Setups. (Achtung... magAVG nicht magAVGkorr!)
Die ab ca. 5:20 auftretenden roten Peaks kommen von den bei leichtem Dauer-Niesel ab und zu von der Abtropfkante herunterfallenden Tropfen.
Die Kante verhindert zwar, dass die Tropfen direkt auf die Sensorfläche gelangen - hier gibts aber noch Verbesserungsbedarf.

EDIT:
Diagramme hinzugefügt.
EDIT 2:
Die Offset-Schwankungen kommen übrigens von den "ungeradzahligen" Frequenzanteilen und sind normal.
EDIT 3:
Dominant groups Diagramm hinzugefügt.

justme1968

@chunter1: sorry. das ist komplett untergegangen.

anbei der aktuelle stand:

- 98_SVG patchen
- die hier: https://forum.fhem.de/index.php/topic,73016.msg652816.html#msg652816 vorgeschlagene myUtils routine so ändern das aus der häufigkeit eine farbe erzeugt wird. vielleicht mit
der pahColor routine und die farbe jeweils  als dritte komponente mit ins array pushen
- logProxy_xy2Plot so ändern das die dritte komponente wieder aus jedem element als dritten wert hinter das ;p gehängt wird

es wäre schön wenn es jemand mit echten werten probieren würde.

wenn es klappt mache ich das ganze noch rund, schlage es rudi vor und checke meinen teil selber ein.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

chunter1

#553
Zitat von: justme1968 am 02 Oktober 2017, 09:04:18
@chunter1: sorry. das ist komplett untergegangen.

anbei der aktuelle stand:

- 98_SVG patchen
- die hier: https://forum.fhem.de/index.php/topic,73016.msg652816.html#msg652816 vorgeschlagene myUtils routine so ändern das aus der häufigkeit eine farbe erzeugt wird. vielleicht mit
der pahColor routine und die farbe jeweils  als dritte komponente mit ins array pushen
- logProxy_xy2Plot so ändern das die dritte komponente wieder aus jedem element als dritten wert hinter das ;p gehängt wird

es wäre schön wenn es jemand mit echten werten probieren würde.

wenn es klappt mache ich das ganze noch rund, schlage es rudi vor und checke meinen teil selber ein.

Ok, danke - was ich allerdings meinte war eine einfache Erweiterung der standard Farbpalette.
Also im einfachsten Fall z.B. neben dem bestehenden drop-down Menü mit "l0, l1..." ein Eingabefeld zu haben, in das man die Farbe alternativ als RGB-Wert (RRGGBB) eintragen kann.
(oder zwei Felder ... Linien- und Füllfarbe)

chunter1

#554
Ich hab mir mal schnell selber eine Farbpalette zusammengeschustert um die 32 Gruppen in den Diagrammen besser auseinanderhalten zu können.
Farbskala siehe Screenshot anbei.
Ist vielleicht nicht das beste Beispiel, aber man sieht zumindest an der Legende den Farbverlauf.

Für alle die es brauchen können, hier meine ios7svg_style.css mit den Erweiterungen.
(Muss natürlich in das von euch verwendete *.css eingefügt werden)
Die zusätzlichen Farben stehen dann im drop-down Menü unter "l100 ... l135" bzw. "l100fill ... l135fill" zur Verfügung.


/* Author: Volker Edit: fhainz */
text { font-family: Helvetica; font-weight:300; font-size:12px; fill:#343434;}
text.title {font-family: Helvetica; font-weight:300; font-size:16px; fill:#343434;}
text.legend{ cursor:pointer; }
text.copy  { text-decoration:underline; stroke:none; fill:blue; cursor:pointer;}
text.paste { text-decoration:underline; stroke:none; fill:blue; cursor:pointer;}

path.SVGplot     { stroke:black; fill:none; }
polyline.SVGplot { stroke:black; fill:none; }
.border { stroke:black; fill:url(#gr_bg);}
.vgrid { stroke:gray; stroke-dasharray:2,6;}
.hgrid { stroke:gray; stroke-dasharray:2,6;}
.pasted { stroke:black; stroke-dasharray:1,1;}

.SVGplot.l0     { stroke:#fc3e39; }
.SVGplot.l1     { stroke:#53d769; }
.SVGplot.l2     { stroke:#157efb; }
.SVGplot.l3     { stroke:#c34ceb; }
.SVGplot.l4     { stroke:brown;   }
.SVGplot.l5     { stroke:black;   }
.SVGplot.l6     { stroke:olive;   }
.SVGplot.l7     { stroke:gray;    }
.SVGplot.l8     { stroke:#f7ab28; }
.SVGplot.l0fill { stroke:#fc3e39; fill:url(#gr_0);    }
.SVGplot.l1fill { stroke:#53d769; fill:url(#gr_1);    }
.SVGplot.l2fill { stroke:#157efb; fill:url(#gr_2);    }
.SVGplot.l3fill { stroke:#c34ceb; fill:url(#gr_3);    }
.SVGplot.l4fill { stroke:#ff0; fill:url(#gr_4);       }
.SVGplot.l5fill { stroke:#0ff; fill:url(#gr_5);       }
.SVGplot.l6fill { stroke:#000; fill:url(#gr_6);       }
.SVGplot.l0dot  { stroke:red;   stroke-dasharray:2,4; }
.SVGplot.l1dot  { stroke:green; stroke-dasharray:2,4; }
.SVGplot.l0fill_stripe {stroke:red;   fill:url(#gr0_stripe); }
.SVGplot.l1fill_stripe {stroke:green; fill:url(#gr1_stripe); }
.SVGplot.l0fill_gyr    {stroke:red;   fill:url(#gr0_gyr);    }
.SVGplot.l100 { stroke:#0000FF; }
.SVGplot.l101 { stroke:#2B00FF; }
.SVGplot.l102 { stroke:#5500FF; }
.SVGplot.l103 { stroke:#8000FF; }
.SVGplot.l104 { stroke:#AA00FF; }
.SVGplot.l105 { stroke:#D500FF; }
.SVGplot.l106 { stroke:#FF00D5; }
.SVGplot.l107 { stroke:#FF00AA; }
.SVGplot.l108 { stroke:#FF0080; }
.SVGplot.l109 { stroke:#FF0055; }
.SVGplot.l110 { stroke:#FF002B; }
.SVGplot.l111 { stroke:#FF0000; }
.SVGplot.l112 { stroke:#FF0000; }
.SVGplot.l113 { stroke:#FF2B00; }
.SVGplot.l114 { stroke:#FF5500; }
.SVGplot.l115 { stroke:#FF8000; }
.SVGplot.l116 { stroke:#FFAA00; }
.SVGplot.l117 { stroke:#FFD500; }
.SVGplot.l118 { stroke:#D5FF00; }
.SVGplot.l119 { stroke:#AAFF00; }
.SVGplot.l120 { stroke:#80FF00; }
.SVGplot.l121 { stroke:#55FF00; }
.SVGplot.l122 { stroke:#2BFF00; }
.SVGplot.l123 { stroke:#00FF00; }
.SVGplot.l124 { stroke:#00FF00; }
.SVGplot.l125 { stroke:#00FF2B; }
.SVGplot.l126 { stroke:#00FF55; }
.SVGplot.l127 { stroke:#00FF80; }
.SVGplot.l128 { stroke:#00FFAA; }
.SVGplot.l129 { stroke:#00FFD5; }
.SVGplot.l130 { stroke:#00D5FF; }
.SVGplot.l131 { stroke:#00AAFF; }
.SVGplot.l132 { stroke:#0080FF; }
.SVGplot.l133 { stroke:#0055FF; }
.SVGplot.l134 { stroke:#002BFF; }
.SVGplot.l135 { stroke:#0000FF; }
.SVGplot.l100fill { stroke:#0000FF; fill:#0000FF; }
.SVGplot.l101fill { stroke:#2B00FF; fill:#2B00FF; }
.SVGplot.l102fill { stroke:#5500FF; fill:#5500FF; }
.SVGplot.l103fill { stroke:#8000FF; fill:#8000FF; }
.SVGplot.l104fill { stroke:#AA00FF; fill:#AA00FF; }
.SVGplot.l105fill { stroke:#D500FF; fill:#D500FF; }
.SVGplot.l106fill { stroke:#FF00D5; fill:#FF00D5; }
.SVGplot.l107fill { stroke:#FF00AA; fill:#FF00AA; }
.SVGplot.l108fill { stroke:#FF0080; fill:#FF0080; }
.SVGplot.l109fill { stroke:#FF0055; fill:#FF0055; }
.SVGplot.l110fill { stroke:#FF002B; fill:#FF002B; }
.SVGplot.l111fill { stroke:#FF0000; fill:#FF0000; }
.SVGplot.l112fill { stroke:#FF0000; fill:#FF0000; }
.SVGplot.l113fill { stroke:#FF2B00; fill:#FF2B00; }
.SVGplot.l114fill { stroke:#FF5500; fill:#FF5500; }
.SVGplot.l115fill { stroke:#FF8000; fill:#FF8000; }
.SVGplot.l116fill { stroke:#FFAA00; fill:#FFAA00; }
.SVGplot.l117fill { stroke:#FFD500; fill:#FFD500; }
.SVGplot.l118fill { stroke:#D5FF00; fill:#D5FF00; }
.SVGplot.l119fill { stroke:#AAFF00; fill:#AAFF00; }
.SVGplot.l120fill { stroke:#80FF00; fill:#80FF00; }
.SVGplot.l121fill { stroke:#55FF00; fill:#55FF00; }
.SVGplot.l122fill { stroke:#2BFF00; fill:#2BFF00; }
.SVGplot.l123fill { stroke:#00FF00; fill:#00FF00; }
.SVGplot.l124fill { stroke:#00FF00; fill:#00FF00; }
.SVGplot.l125fill { stroke:#00FF2B; fill:#00FF2B; }
.SVGplot.l126fill { stroke:#00FF55; fill:#00FF55; }
.SVGplot.l127fill { stroke:#00FF80; fill:#00FF80; }
.SVGplot.l128fill { stroke:#00FFAA; fill:#00FFAA; }
.SVGplot.l129fill { stroke:#00FFD5; fill:#00FFD5; }
.SVGplot.l130fill { stroke:#00D5FF; fill:#00D5FF; }
.SVGplot.l131fill { stroke:#00AAFF; fill:#00AAFF; }
.SVGplot.l132fill { stroke:#0080FF; fill:#0080FF; }
.SVGplot.l133fill { stroke:#0055FF; fill:#0055FF; }
.SVGplot.l134fill { stroke:#002BFF; fill:#002BFF; }
.SVGplot.l135fill { stroke:#0000FF; fill:#0000FF; }

text.SVGplot.l0     { stroke:none; fill:#fc3e39; }
text.SVGplot.l1     { stroke:none; fill:#53d769; }
text.SVGplot.l2     { stroke:none; fill:#157efb; }
text.SVGplot.l3     { stroke:none; fill:#c34ceb; }
text.SVGplot.l4     { stroke:none; fill:brown;   }
text.SVGplot.l5     { stroke:none; fill:black;   }
text.SVGplot.l6     { stroke:none; fill:olive;   }
text.SVGplot.l7     { stroke:none; fill:gray;    }
text.SVGplot.l8     { stroke:none; fill:#f7ab28; }
text.SVGplot.l0fill { stroke:none; fill:#fc3e39; }
text.SVGplot.l1fill { stroke:none; fill:#53d769; }
text.SVGplot.l2fill { stroke:none; fill:#157efb; }
text.SVGplot.l3fill { stroke:none; fill:#c34ceb; }
text.SVGplot.l4fill { stroke:none; fill:#ff0;    }
text.SVGplot.l5fill { stroke:none; fill:#0ff;    }
text.SVGplot.l6fill { stroke:none; fill:#000;    }
text.SVGplot.ldot   { stroke:none; fill:red;     }
text.SVGplot.ldot   { stroke:none; fill:green;   }
text.SVGplot.l0fill_stripe {stroke:none; fill:red;  }
text.SVGplot.l1fill_stripe {stroke:none; fill:green;}
text.SVGplot.l0fill_gyr    {stroke:none; fill:red;  }
text.SVGplot.l100 { stroke:none; fill:#0000FF; }
text.SVGplot.l101 { stroke:none; fill:#2B00FF; }
text.SVGplot.l102 { stroke:none; fill:#5500FF; }
text.SVGplot.l103 { stroke:none; fill:#8000FF; }
text.SVGplot.l104 { stroke:none; fill:#AA00FF; }
text.SVGplot.l105 { stroke:none; fill:#D500FF; }
text.SVGplot.l106 { stroke:none; fill:#FF00D5; }
text.SVGplot.l107 { stroke:none; fill:#FF00AA; }
text.SVGplot.l108 { stroke:none; fill:#FF0080; }
text.SVGplot.l109 { stroke:none; fill:#FF0055; }
text.SVGplot.l110 { stroke:none; fill:#FF002B; }
text.SVGplot.l111 { stroke:none; fill:#FF0000; }
text.SVGplot.l112 { stroke:none; fill:#FF0000; }
text.SVGplot.l113 { stroke:none; fill:#FF2B00; }
text.SVGplot.l114 { stroke:none; fill:#FF5500; }
text.SVGplot.l115 { stroke:none; fill:#FF8000; }
text.SVGplot.l116 { stroke:none; fill:#FFAA00; }
text.SVGplot.l117 { stroke:none; fill:#FFD500; }
text.SVGplot.l118 { stroke:none; fill:#D5FF00; }
text.SVGplot.l119 { stroke:none; fill:#AAFF00; }
text.SVGplot.l120 { stroke:none; fill:#80FF00; }
text.SVGplot.l121 { stroke:none; fill:#55FF00; }
text.SVGplot.l122 { stroke:none; fill:#2BFF00; }
text.SVGplot.l123 { stroke:none; fill:#00FF00; }
text.SVGplot.l124 { stroke:none; fill:#00FF00; }
text.SVGplot.l125 { stroke:none; fill:#00FF2B; }
text.SVGplot.l126 { stroke:none; fill:#00FF55; }
text.SVGplot.l127 { stroke:none; fill:#00FF80; }
text.SVGplot.l128 { stroke:none; fill:#00FFAA; }
text.SVGplot.l129 { stroke:none; fill:#00FFD5; }
text.SVGplot.l130 { stroke:none; fill:#00D5FF; }
text.SVGplot.l131 { stroke:none; fill:#00AAFF; }
text.SVGplot.l132 { stroke:none; fill:#0080FF; }
text.SVGplot.l133 { stroke:none; fill:#0055FF; }
text.SVGplot.l134 { stroke:none; fill:#002BFF; }
text.SVGplot.l135 { stroke:none; fill:#0000FF; }
text.SVGplot.l100fill { stroke:none; fill:#0000FF; }
text.SVGplot.l101fill { stroke:none; fill:#2B00FF; }
text.SVGplot.l102fill { stroke:none; fill:#5500FF; }
text.SVGplot.l103fill { stroke:none; fill:#8000FF; }
text.SVGplot.l104fill { stroke:none; fill:#AA00FF; }
text.SVGplot.l105fill { stroke:none; fill:#D500FF; }
text.SVGplot.l106fill { stroke:none; fill:#FF00D5; }
text.SVGplot.l107fill { stroke:none; fill:#FF00AA; }
text.SVGplot.l108fill { stroke:none; fill:#FF0080; }
text.SVGplot.l109fill { stroke:none; fill:#FF0055; }
text.SVGplot.l110fill { stroke:none; fill:#FF002B; }
text.SVGplot.l111fill { stroke:none; fill:#FF0000; }
text.SVGplot.l112fill { stroke:none; fill:#FF0000; }
text.SVGplot.l113fill { stroke:none; fill:#FF2B00; }
text.SVGplot.l114fill { stroke:none; fill:#FF5500; }
text.SVGplot.l115fill { stroke:none; fill:#FF8000; }
text.SVGplot.l116fill { stroke:none; fill:#FFAA00; }
text.SVGplot.l117fill { stroke:none; fill:#FFD500; }
text.SVGplot.l118fill { stroke:none; fill:#D5FF00; }
text.SVGplot.l119fill { stroke:none; fill:#AAFF00; }
text.SVGplot.l120fill { stroke:none; fill:#80FF00; }
text.SVGplot.l121fill { stroke:none; fill:#55FF00; }
text.SVGplot.l122fill { stroke:none; fill:#2BFF00; }
text.SVGplot.l123fill { stroke:none; fill:#00FF00; }
text.SVGplot.l124fill { stroke:none; fill:#00FF00; }
text.SVGplot.l125fill { stroke:none; fill:#00FF2B; }
text.SVGplot.l126fill { stroke:none; fill:#00FF55; }
text.SVGplot.l127fill { stroke:none; fill:#00FF80; }
text.SVGplot.l128fill { stroke:none; fill:#00FFAA; }
text.SVGplot.l129fill { stroke:none; fill:#00FFD5; }
text.SVGplot.l130fill { stroke:none; fill:#00D5FF; }
text.SVGplot.l131fill { stroke:none; fill:#00AAFF; }
text.SVGplot.l132fill { stroke:none; fill:#0080FF; }
text.SVGplot.l133fill { stroke:none; fill:#0055FF; }
text.SVGplot.l134fill { stroke:none; fill:#002BFF; }
text.SVGplot.l135fill { stroke:none; fill:#0000FF; }