Deutsche Anleitung
English Guide
Beachte, dass ein selbstgewählter Geldbetrag für die Nutzung erwartet wird.
Bereits 1€ macht einen großen unterschied und sollte jeder ausgeben können.
Bei Problemen bitte ein Github-Issue erstellen oder über Discord kontaktieren und bei gefallen ein Github Stern vergeben.
A small donation is gladly received and expected. Nothing against trying out first.
I am already glad to receive as low as 1€.
If you experience problems or need help feelfree to create a Github issue or contact me over Discord.
Also if you like my Projekt please give it a Github-star.
www.paypal.me/TimOberle
Solar:
- Nur Solar anzeige kann gewählt werden
- Solar zu Haus Anzeige
- Zu Haus und Haus berechnung
- Kwh zu € berechnung
Smart-home image:
- Mehr und freie icon auswahl
- Freie Zeilen möglich
- Beschriftung/Überschrift für jede Zeile
- 3 Zeilen pro icon wenn Wert und Einheit auf klein gesetzt ist
- Einheit pro Wert
- Bunte Kreise
Var-Name | Beschreibung | Datentyp | Info |
---|---|---|---|
msg.info | Obere Leiste | String | Wenn nicht gesetzt Datum/Uhr wird angezeigt |
msg.house | Haus | String oder Number Number für alle Funktionen wie umrechnen |
Wenn nicht gesetzt wird errechnet |
msg.toHouse | Solar zu Haus | String oder Number Number für alle Funktionen wie umrechnen |
Wenn nicht gesetzt wird errechnet |
msg.solar | Solar | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.solarPercent | Solar-Prozent | String oder Number Number für alle Funktionen wie umrechnen |
Wenn nicht gesetzt wird errechnet |
msg.fromGrid | Vom Stromnetz | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.toGrid | Zum Stromnetz | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.car | Zum Auto | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.carPercent | Auto-Prozent | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.heatPump | Zur Wärmepumpe | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.fromBattery | Von der Batterie | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.toBattery | Zu der Batterie | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.batteryPercent | Batterie-Prozent | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.(var name)Unit | In-Einheit | String: "", W, kW, Wmin, Wh, kWh, MWh, € oder T€ | Beispiel: msg.houseUnit = "kWh" |
msg.(var name)OutUnit | Anzeige-Einheit | String: "", W, kW, kWh, MWh, € oder T€ | Beispiel: msg.houseOutUnit = "kWh" |
msg.solarMax | Max-Wert um msg.solarPercent auszurechnen | Number (Einheit W) | |
msg.label | Beschriftung | String |
- X=Icon Nummer
- X=Zeilen Nummer
Var-Name | Beschreibung | Datentyp | Info |
---|---|---|---|
msg.info | Obere Leiste | String | Wenn nicht gesetzt Datum/Uhr wird angezeigt |
msg.valueXX | Wert | String oder Number Number für alle Funktionen wie umrechnen |
|
msg.negativeValueXX | Wird abgezogen nutzlich wenn z.B. Netz zu/aus getrennt ist | Number | |
msg.unitXX | Einheit | String: "", W, kW, Wmin, Wh, kWh, MWh, €, T€, 0-1%, °C, °F oder K | Beispiel: msg.unit11 = "kWh" |
msg.outUnitXX | Anzeige-Einheit | String: "", W, kW, kWh, MWh, €, T€, %, °C, °F oder K | Beispiel: msg.outUnit11 = "kWh" |
msg.labelX | Beschriftung | String | Beispiel: msg.label1 = "TV" |
msg.headlineX | Überschrift | String | Beispiel: msg.headline2 = "Steckdosen" |
msg.circleX | Bunter-Kreis | String: blue, green, grey, orange, red, white oder yellow | Beispiel: msg.circle1 = "green" |
msg.miniIconX | Mini-Icon | String: battery, batteryX, batteryFlash, happy, sceptic, sad, warn, signal, signalNoConnection oder signal0 bis signal4 | |
msg.miniIconXPercent | Batterie/Signal Prozent | Number: 0-100 | |
msg.miniIconXDBm | Signalstärke | Number: -100-0 | |
msg.miniIconXColor | Batterie Farbe | String: red, orange, yellow, greenYellow oder green | |
msg.roundModeXX | Rundungsmodus | String: "", Round oder To fixed | |
msg.decimalsXX | Kommastellen | Number: -1-∞ | -1 für Standart |
msg.customIconX | Eigenes Icon | String file path, URL or base64 string | |
msg.customIcon | Wenn msg.customIconX nicht übergeben wird | String file path, URL or base64 string |
Bild zu Base64 string Umwandler
Es sind viele Anleitungen zur Inbetriebnahme von Node-Red verfügbar daher wird dieser Schritt übersprungen.
Installiere Node-Red image tools.
Lade die neuste Version hier herunter und importiere diese (solar und/oder Smarthome image).
Füge ein "http in" node hinzu und vergebe eine Adresse.
Füge unter System/FRITZ!Box-Benutzer über die Fritzbox Oberfläche ein neuen benutzer hinzu mit nur SmartHome rechten.
Melde die Steckdose an der Fritzbox an wenn noch nicht geschehen.
Notiere die ain ohne leerzeichen unter Smart Home/Geräte und Gruppen/Stift oder vom Gerätegehäuse.
Installiere "node-red-contrib-fritzapi" über Palette wie du die image-tools installiert hast.
Füge ein change node hinzu und setze ain auf die notierte nummer.
Füge ein outlet node hinzu und setze die Zugangsdaten und Action auf "get power".
Füge ein change node hinzu welches msg.solar auf msg.payload setzt.
Füge ein solar image node hinzu und konfiguriere ihn nach deinen Wünschen.
Importiere folgenden Subflow und setze die Zugangsdaten.
[{"id":"3f152da42a676d42","type":"subflow","name":"Dect 200/210","info":"# override options\r\nmsg.ain as string","category":"","in":[{"x":60,"y":40,"wires":[{"id":"d77040f4713bfce5"}]}],"out":[{"x":1940,"y":40,"wires":[{"id":"99465cf54a644259","port":0}]}],"env":[{"name":"ain","type":"str","value":"","ui":{"type":"input","opts":{"types":["str"]}}}],"meta":{"version":"0.0.2","author":"Tim Oberle","keywords":"fritz"},"color":"#2E90DD","icon":"node-red-contrib-fritzapi/fritz.png"},{"id":"1f0a79874e2a8d70","type":"fritz-outlet","z":"3f152da42a676d42","connection":"4064abf62c97a123","name":"online","action":"getSwitchPresence","x":290,"y":40,"wires":[["853c5c722062d483"]]},{"id":"853c5c722062d483","type":"function","z":"3f152da42a676d42","name":"msg.online","func":"msg.online = msg.payload == 1\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":40,"wires":[["a17d2148153105fe"]]},{"id":"a17d2148153105fe","type":"fritz-outlet","z":"3f152da42a676d42","connection":"4064abf62c97a123","name":"state","action":"getSwitchState","x":570,"y":40,"wires":[["016ff3e84df1a818"]]},{"id":"016ff3e84df1a818","type":"function","z":"3f152da42a676d42","name":"msg.state","func":"msg.state = msg.payload == 1\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":40,"wires":[["268c337afbfc4e5d"]]},{"id":"268c337afbfc4e5d","type":"function","z":"3f152da42a676d42","name":"circle","func":"msg.circle = msg.state ? \"green\" : \"red\";\n\nif(msg.online == true){}\nelse{\n delete msg.circle;\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":830,"y":40,"wires":[["60fb6b3b6514189c"]]},{"id":"60fb6b3b6514189c","type":"fritz-outlet","z":"3f152da42a676d42","connection":"4064abf62c97a123","name":"power","action":"getSwitchPower","x":950,"y":40,"wires":[["a86270d47a8a3c11"]]},{"id":"a86270d47a8a3c11","type":"function","z":"3f152da42a676d42","name":"msg.power","func":"msg.power = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1090,"y":40,"wires":[["3a61caa56fda9e4e"]]},{"id":"3a61caa56fda9e4e","type":"fritz-outlet","z":"3f152da42a676d42","connection":"4064abf62c97a123","name":"energy","action":"getSwitchEnergy","x":1240,"y":40,"wires":[["8df7066bef1ab277"]]},{"id":"8df7066bef1ab277","type":"function","z":"3f152da42a676d42","name":"msg.energy","func":"msg.energy = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1390,"y":40,"wires":[["a45259d717a93231"]]},{"id":"a45259d717a93231","type":"fritz-outlet","z":"3f152da42a676d42","connection":"4064abf62c97a123","name":"temp","action":"getTemperature","x":1530,"y":40,"wires":[["d744c1e9f07ca30d"]]},{"id":"d744c1e9f07ca30d","type":"function","z":"3f152da42a676d42","name":"msg.temperature","func":"msg.temperature = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1690,"y":40,"wires":[["99465cf54a644259"]]},{"id":"d77040f4713bfce5","type":"function","z":"3f152da42a676d42","name":"env ain","func":"if (msg.ain === undefined){\n msg.ain = env.get(\"ain\");\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":160,"y":40,"wires":[["1f0a79874e2a8d70"]]},{"id":"99465cf54a644259","type":"change","z":"3f152da42a676d42","name":"delete","rules":[{"t":"delete","p":"iconNumber","pt":"msg"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1850,"y":40,"wires":[[]]},{"id":"4064abf62c97a123","type":"fritz-api","name":"","host":"http://fritz.box","strictSSL":true}]
Füge ein change node hinzu welches die Werte auf die richtige icon nummer Variable setzt.
Füge ein smart-home image node ein und konfiguriere ihn.
Nächster Schritt: Fritzfon Einstellungen
Füge ein "influxdb in" node hinzu.
Setze Server und Querry.
Beispiel query:
Influxdb 1.X (InfluxQL):
SELECT last(*) FROM "Measurement";
"*" für alle gespeicherten Variablen.
Influxdb 2.X (flux):
from(bucket: "bucket")
|> range(start: -1d)
|> filter(fn: (r) => r._measurement == "Measurement")
|> last()
Füge ein "change" node hinzu um die daten auf die richtige Variable zu setzen.
Ich empfehle mithilfe eines Debug-Nodes die richtige Pfad herauszufinden.
z.B. msg.value11 auf
Influxdb 1.X: msg.payload[0].last_value
Influxdb 2.X: msg.payload[0]._value
Wiederhole die letzten 2 Schritte für alle Daten die angezeigt werden sollen. Dann füge ein "Fritzfon solarimage" node hinzu.
Bearbeite den "Fritzfon solarimage" node entsprechend was angezeigt werden soll.
In diesem fall "unit" auf "W"... anschließend wird der Flow übernommen.
Navigiere in der Fritzbox Oberfläche (fritz.box) zu "Telefonie"/Telefoniegeräte/Live-Bilder"
und klicke auf "Neues Live-Bild hinzufügen"
Vergebe einen Namen, Adresse (Hostname oder feste IP des Node-red Servers vor der vorhervergebenen Adresse) und setze den Abrufintervall auf z.B. 1 Sec.
Nachdem Bestätigen ist das Display unter "Menu/Heimnetz/Live-Bild" auf dem Fritzfon aufrufbar.
Tipp: Du kannst Live-Bilder zu den Fritzfon Favoriten hinzufügen für schnelleren Zugriff.
Beachte, dass ein selbstgewählter Geldbetrag für die Nutzung erwartet wird.
www.paypal.me/TimOberle
There are many guids how to install Node-Red available so this step is skipped here.
You need to install
Node-Red image tools before importing my subflow.
Import the latest version from Releases.
Add a "http in" node and give it a unique url.
Configure Server and querry.
Example querry:
Influxdb 1.X (InfluxQL):
SELECT last(*) FROM "Measurement";
"*" for all field keys.
Influxdb 2.X (flux):
from(bucket: "bucket")
|> range(start: -1d)
|> filter(fn: (r) => r._measurement == "Measurement")
|> last()
Add a "change" node to set the queried data to right variable.
I recommend to use a debug node to find the right path.
Influxdb 1.X: msg.payload[0].last_value
Influxdb 2.X: msg.payload[0]._value
Solar:
Smart-home image:
- bigger and freely selectable icons
- Empty Rows possible
- label/headline for each icon
- 3 rows per icon if small value and unit is selected
- unit per value
- colored circles
Var-name | Description | Data-type | Info |
---|---|---|---|
msg.info | Top bar | String | If not provided date and time will be shown |
msg.house | house | String oder Number Number for all features like converting |
If not provided will get calculated |
msg.toHouse | Solar to House | String oder Number Number for all features like converting |
If not provided will get calculated |
msg.solar | Solar | String oder Number Number for all features like converting |
|
msg.solarPercent | Solar percent | String oder Number Number for all features like converting |
If not provided will get calculated |
msg.fromGrid | From grid | String oder Number Number for all features like converting |
|
msg.toGrid | To grid | String oder Number Number for all features like converting |
|
msg.car | To car | String oder Number Number for all features like converting |
|
msg.carPercent | Car percent | String oder Number Number for all features like converting |
|
msg.heatPump | To heatpump | String oder Number Number for all features like converting |
|
msg.fromBattery | From battery | String oder Number Number for all features like converting |
|
msg.toBattery | To battery | String oder Number Number for all features like converting |
|
msg.batteryPercent | Battery percent | String oder Number Number for all features like converting |
|
msg.(var name)Unit | Input-Unit | String: "", W, kW, Wmin, Wh, kWh, MWh, € r T€ | Example: msg.houseUnit = "kWh" |
msg.(var name)OutUnit | Shown-Unit | String: "", W, kW, kWh, MWh, € or T€ | Example: msg.houseOutUnit = "kWh" |
msg.solarMax | Max Value to calculate msg.solarPercent | Number (Unit W) | |
msg.label | Label | String |
- X=icon number
- X=row number
Var-name | Description | Data-type | Info |
---|---|---|---|
msg.info | Top bar | String | If not provided date and time will be shown |
msg.valueXX | Value | String or Number Number for all features like converting |
|
msg.negativeValueXX | Will get subtracted. Helps wenn to/from are seperated | Number | |
msg.unitXX | Input unit | String: "", W, kW, Wmin, Wh, kWh, MWh, €, T€, 0-1%, °C, °F or K | Example: msg.unit11 = "kWh" |
msg.outUnitXX | Shown unit | String: "", W, kW, kWh, MWh, €, T€, %, °C, °F or K | Example: msg.outUnit11 = "kWh" |
msg.labelX | Label | String | Example: msg.label1 = "TV" |
msg.headlineX | Headline | String | Example: msg.headline2 = "Steckdosen" |
msg.circleX | colored-circle | String: blue, green, grey, orange, red, white oder yellow | Example: msg.circle1 = "green" |
msg.miniIconX | mini icon | String: battery, batteryX, batteryFlash, happy, sceptic, sad, warn, signal, signalNoConnection or signal0 to signal4 | |
msg.miniIconXPercent | Battery and signal percent | Number: 0-100 | |
msg.miniIconXDBm | signal strength | Number: -100-0 | |
msg.miniIconXColor | Batterie Farbe | String: red, orange, yellow, greenYellow or green | |
msg.roundModeXX | Rounding mode | String: "", Round oder To fixed | |
msg.decimalsXX | Decimals | Number: -1-∞ | -1 for standard |
msg.customIconX | Custom Icon | String file path, URL or base64 string | |
msg.customIcon | Used if msg.customIconX isn't provided | String file path, URL or base64 string |
Image to Base64 string converter
Repeat last 2 steps for all data you want to show. Then add the imported "Fritzfon solarimage".
Edit "Fritzfon solarimage". In this case for example change the "unit" to "W" and Round mode to "To fixed".
Then deploy the flow.
Navigate to "Telephony"/Telephony Devices/Live Image"
and click on "Add New Live Image"
Set a unique name, url you chosed before (Add hostname or fixed IP of the Node-Red server in front) and set intervall to 1 sec.
After applying you should be able to show the image on your Fritzfon under "Menu/Home Network/Live Image". Tipp: you can add Live-Bild to favourites for faster access.
Feel free to try my Project first and decide how much it is worths to you afterwards.
www.paypal.me/TimOberle
Please note that I don't allow selling this software without my permisson.