Wie im letzten Beitrag geschrieben, war ja mein Plan, dass ich mit dem Raspberry Pi die Daten von meinem SMA-Wechselrichter auslese und somit die aktuelle Stromerzeugung einsehen kann.
Der SMA-Wechselrichter hat nur eine Bluetooth-Schnittstelle und somit kann man die Daten nicht direkt über Ethernet auslesen. Andererseits ist der Raspberry standardmäßig mit keinem Bluetooth-Modul ausgestattet. Aber es gibt ja die zwei USB-Schnittstellen.
Nach ein bisschen Recherche habe ich man dann für einen Bluetooth-Stick entschieden. Der Däumling wurde dann in eine USB-Schnittstelle des Pi gesteckt und ohne Probleme von Raspbian erkannt und war somit einsatzbereit.
Um nun die Daten vom Wechselrichter (in Echtzeit) auszulesen, habe ich die bereits im letzten Beitrag erwähnte Software SMAspot (Update 29.06.2014: heißt jetzt SBFspot) benutzt. Es gibt auch eine mehr oder weniger vollständige Anleitung zur Installation von SBFspot auf dem Pi. Gut, man muss es halt selber kompilieren, aber nach der Überwindung einiger kleiner Hürden war es dann geschafft. SBFspot kommunizierte über die Bluetooth-Schnittstelle mit dem Wechselrichter und liefert die Daten in die Konsole.
SBFspot wurde primär entwickelt, um historische Daten aufzuzeichnen. Aber das ist nicht, was ich wollte. Der Plan war ja, die aktuellen Daten in einer menschenlesbaren Form auf einer Internetseite zur Verfügung zu stellen.
Also habe ich zum Schluss noch eine PHP-Seite geschrieben, welche die Konsolenausgabe in HTML verwandelt.
Und so sieht das Ganze dann aus:
Hallo Andreas,
danke für deine Anleitung, ich werde mich demnächst auch an mit nem ähnlichen Projekt beschäftigen.
Der Link zu deinem verwendeten Raspberry PI Bluetooth Stick scheint nicht zu funktionieren! Könntest du den fixen?
danke!
Hallo Andy!
Ich habe den Link gefixt. Es ist ein „CSL – USB nano Bluetooth-Adapter V4.0 mit LED“ zu finden bei Amazon. Am besten ist es, wenn man den Stick über einen USB-Hub mit externer Stromversorgung betreibt. Ich hatte da Probleme mit Abstürzen, wenn ich den Stick direkt am Raspberry betrieben habe.
mfg
Andreas
Hey danke! Ich seh ihn mir an, werd wohl noch weitersuchen ob’s auch einen ohne externe Stromversorgung gibt.
Und danke für den vorausschauenden Fix für den Smaspot Link fix 😉
Hallo Andreas,
habe mir SBFSpot installiert und suche nun eine einfache möglichkeit, die Daten anzeigen zu lassen, eigentlich genau wie in deinem php script.
Würdest Du Dein PHP Script evtl. teilen bzw. auch kurz beschreiben wie man es anwendet?
Gruß
Chris
Hallo Andreas
wie Chris schon geschrieben hat würde mich das PHP Script auch interessieren. Da ich auch gern die Daten anzeigen lassen möchte.
Gruß Tim
Hallo Andreas
Wie Chris schon geschrieben hat interessiert mich das PHP script auch damit ich die Daten anzeigen lassen kann. Gruß Tim
Es gibt ein SMA Energie Meter. Hat jemand dafür eine RPI Domoticz Anbindung gemacht?
Hallo Andreas,
genau diesen Ansatz, nur das Auslesen des Wechselrichters, verfolge ich auch, kannst du mir das PHP Script zur Verfügung stellen?
Grüße Klaus
Hi Andreas,
könntest du mir bitte auch dein PHP-Script zur Verfügung stellen?
Danke!
Martin
Hallo Martin!
Mein komplettes PHP-Skript kann ich dir leider nicht zur Verfügung stellen, da es noch ein paar andere Sachen macht. Aber hier ein Auszug:
Hi Andreas, aktuell ist der PHP Codeschnipsel nicht sichtbar. Mich würde das auch brennend interessieren 😉
Hi Anreas,
aktuell ist das PHP Codebeispiel nicht sichbar. Könntest du es bitte wieder online stellen?
Cruiz
Alexander
Hallo Alexander!
Hier nochmals das Schnipsel:
$output2 = shell_exec('/home/pi/readfrommt174.py');
$purchase = between($output2, "1-0:1.7.0*255(", "*kW)");
$delivery = between($output2, "1-0:2.7.0*255(", "*kW)");
$totalpurchase = between($output2, "1-0:1.8.0*255(", "*kWh)");
$totaldelivery = between($output2, "1-0:2.8.0*255(", "*kWh)");
echo "".$purchase."kW|".$delivery."kW"."|".$totalpurchase."kWh|".$totaldelivery."kWh";
// this function gets a string between to other strings, used
// to get only the information, that is interesting
function between($src,$start,$end){
$txt=explode($start,$src);
$txt2=explode($end,$txt[1]);
return trim($txt2[0]);
}