Hallo Zusammen, ich hab zur Überwachung meiner Heizung ein PHP-Script geschrieben das alle 5 Minuten die Temperaturdaten an volkszähler sendet. Dies funktioniert auch soweit einwandfrei auf meinem Laptop Um die Datenübertragung dauerhaft zu betreiben verbraucht der Laptop aber zu viel Energie Ein AVR-NET-IO hab ich zuhause herumliegen, könnte man damit das script verarbeiten lassen? Oder ist für diese Lösung ein Mini-PC wie z.B. Raspberry Pi sinnvoller. Das Script holt die Daten von der Heizung filtert diese und sendet es dann formatiert an volkszähler Was wäre die beste Lösung welche dann auch so wenig wie möglich Energie verbraucht Im Voraus schon mal Danke für eure Antwort Gruß Himmelreich
PHP auf dem NetIO? nee, eher nicht ... aber das RasPi kann das Apache und PHP, kein Problem.
Hallo weinbauer, Danke für deine Antwort. Gibt es noch was kleineres im bezug auf Energieverbrauch als das RasPi was das gewüschte ausführen kann? Ich hab auch noch einen Wlan-Accespoint Linksys WRT54GL mit Tomato Firmware der tagsüber läuft. Kann nicht der das Skript ausführen, denn die Konfigurations-Oberfläche wird ja über den Browser aufgerufen, sprich es ist also schon ein Webserver integriert oder? Danke schon mal für eure Hilfe Gruß Himmelreich
Wie komplex ist denn dein PHP-Skript? Wenn es einfach nur Daten irgendwo hin POSTet, kannst du auch mit dem NetIO eine TCP-Verbindung aufmachen und das selbst erledigen :)
Genau, sehe das auch so wie cyprius. Im Prinzip musst du ja nur vorgefertigte Pakete an den Volkszähler senden, die je nach Messwert entsprechend modifiziert werden, die Header bleiben aber ja immer gleich. Von daher sollte das mit dem NetIO gehen. Mit dem WRT54GL würde das von der Rechenleistung her wohl auch gehen, da ist nachdem was ich gerade gesehen habe wohl auch GPIO dran, über die Pins müsstest du die Messwerte also auch lesen können. Das ist vermutlich die einfachste Lösung.
Hallo zusammen, und danke für eure Antwort. Das Script sieht aus wie folgt:
1 | <?php
|
2 | $anfang_z = 'pm '; |
3 | $zei_ers = array("\n", " "); |
4 | |
5 | //$telnet = fopen("E:\\Heizung\\hz.txt", "r");
|
6 | |
7 | $telnet = fsockopen("192.168.1.100", "23", $errno, $errstr, 5); |
8 | |
9 | if (!$telnet){ |
10 | echo "ERROR: $errno - $errstr<br />\n"; |
11 | exit(); |
12 | }
|
13 | else{ |
14 | |
15 | $dat_zeile = fgets($telnet, 500); |
16 | //echo $dat_zeile;
|
17 | |
18 | // Stringanfang finden
|
19 | $anfang = strpos($dat_zeile, $anfang_z) +3; |
20 | //echo $anfang ;
|
21 | // Teilstring ohne Anfang herausschneiden
|
22 | $rest = substr($dat_zeile, $anfang, 500); |
23 | //echo "Rest: $rest";
|
24 | |
25 | $laenge = strlen(trim($rest)); |
26 | //echo "Länge: $laenge";
|
27 | $rest_2 = trim(substr($rest, 0, $laenge)); |
28 | //echo $rest_2;
|
29 | $test = str_replace($zei_ers, ";", $rest_2); |
30 | //echo $test;
|
31 | |
32 | $arr = explode(';',$test); |
33 | //print_r( $arr );
|
34 | |
35 | list($Temp_Ofen, $Temp_Abgas, $Lambda, $Puffer_Oben, $Puffer_Mitte, $Puffer_unten, $Temp_Aussen, $HK1_Vorlauf_IST, $TVL_2, $Raum_1_TR1, $TR2, $TB1_Boiler, $Hk1_Vorl_Soll_TVLs_1, $TVLs_2, $TRs_1, $TRs_2, $Primärklappe_IST, $Primärklappe_Soll, $Sek_ist, $Sek_soll, $SZsoll_Saugzug, $RLP, $ZK, $O2_soll, $U_Lambda, $TRG_soll, $TRG_max, $TKsoll, $TVL_3, $TVL_4, $TR3, $TR4, $TB2, $TVLs_3, $TVLs_4, $TRs_3, $TRs_4, $TVL_5, $TVL_6, $TR5, $TR6, $TB3, $TVLs_5, $TVLs_6, $TRs_5, $TRs_6, $SZist, $Tplat, $TRL, $PufLad, $TB4, $TB5, $TB6, $MWZ_Vorl, $MWZ_Rueckl, $MWZ_Durchf, $MWZ_Leist, $TFW, $TRLsoll, $TA_Gem_Aussen, $VFS_Flow, $VFS_Temp, $IO32_VL, $IO32_521_Pa, $IO32_522_Pa, $IO32_509_Pa, $IO32_510_Pa, $Dig_CHAN_0, $Dig_CHAN_1, $Dig_CHAN_2, $Dig_CHAN_3, $Dig_CHAN_4, $Dig_CHAN_5, $Dig_CHAN_6, $Dig_CHAN_7) = explode(';',$test); |
36 | |
37 | //echo "Temperatur Ofen: $Temp_Ofen";
|
38 | |
39 | //Daten an demo.volkszaehler.org uebertragen
|
40 | fopen ("http://demo.volkszaehler.org/middleware.php/data/[volkszähler-id].json?operation=add&value=$HK1_Vorlauf_IST", "r"); |
41 | fopen ("http://demo.volkszaehler.org/middleware.php/data/[volkszähler-id].json?operation=add&value=$Puffer_Oben", "r"); |
42 | fopen ("http://demo.volkszaehler.org/middleware.php/data/[volkszähler-id].json?operation=add&value=$Puffer_Mitte", "r"); |
43 | fopen ("http://demo.volkszaehler.org/middleware.php/data/[volkszähler-id].json?operation=add&value=$Puffer_unten", "r"); |
44 | fopen ("http://demo.volkszaehler.org/middleware.php/data/[volkszähler-id].json?operation=add&value=$Temp_Aussen", "r"); |
45 | }
|
46 | fclose($telnet); |
47 | ?>
|
Die Heizung liefert die Werte einwandfrei also muss nichts gemessen werden. Welche Lösung wäre am geeignetsten? Priorität liegt auf Energieverbrauch und wenn es geht auf PHP Verarbeitung. PHP deshalb weil ich das einigermaßen versteh und spätere Änderungen leichter durchführen kann. Das gesuchte Teil soll die gesendeten Daten von der Heizung annehmen, filtern und an volkszäler weitergeben. Bin offen für alle Vorschläge NetIo liegt herum, WRT54GL läuft Tagsüber eh, RasPi wäre interessant mal auszuprobieren Danke schon mal für eure Antworten Gruß Himmelreich
:
Bearbeitet durch User
Auf dem WRT54GL sollte ein (Open o.ä.) WRT laufen, da wäre dann php kein allzu großes Problem.
die fopen im unteren Scriptbereich sind nichts Anderes als Datenübertragung per $_GET ... das sollte man dem NetIO beibiegen können die Requests zu senden ... hab ich persönlich aber nochnicht gemacht. Noch nicht so klar ist mir wo Dein Server die Daten her holt ... aus ner TXT-Datei wie mir scheint, das steht dann beim NetIO nichtmehr zur Verfügung. Was den Energieverbrauch angeht bin ich mir nichtmal so sicher ob das NetIO wesentlich weniger zieht, hab beide in Betrieb, also auch das Pi und beide Gehäuse werden bei mir handwarm. Muss ich echt mal nachmessen. Dazu bietetr das Pi dann noch n paar mehr Möglichkeiten, hab meinem erst die Tage so ne USB-Wetterstation drangehängt, was bei der Heizdatenerfassung durchaus auch von Interesse wäre.
:
Bearbeitet durch User
Es sieht so aus, als wäre das eine Datei mit Testdaten, um nicht jedes mal eine Telnet-Verbindung aufzubauen. Die Zeile ist ja auch schon auskommentiert. Ansonsten lässt sich das Skript sehr leicht aufdröseln und z.B. mit dem NetIO umsetzen. Wenn du die Stromsparfunktionen von AVR & ENC benutzt, kannst du den Gesamtverbrauch nahezu vernachlässigen.
:
Bearbeitet durch User
Hallo cyprius, Danke für deine Antwort Die Textdatei hz.txt war eine Testdatei ist aber wie du schon gesagt hast auskommentiert Momentan wird tatsächlich alle 5 Minuten eine Telnet-Verbindung zur Heizung aufgebaut um die Daten abzufragen. Kann NetIo das Script verarbeiten oder muss ich das Script im NetIo mit einer anderen Sprache nachbauen? Hast du vielleicht links wo so was ähnliches beschrieben ist, denn bei NetIO bin ich kompletter Anfänger. Hab NetIo für ein anderes Projekt mal bestellt, aber es kam nie zur Realisierung Gruß Himmelreich
Himmelreich schrieb: > Kann NetIo das Script verarbeiten Nein. Mit PHP kannst du am NetIo nichts anfangen. Es sollte aber kein allzugroßes Problem sein, die Funktionalität selber in C nachzuprogrammieren. Vorausgesetzt du kannst C
Hallo Himmelreich, > Kann NetIo das Script verarbeiten oder muss ich das Script im NetIo mit > einer anderen Sprache nachbauen? wie der Vorposter schon geschrieben hat, ist der NetIO erstmal "nur" eine Entwicklungs-Plattform und bietet keine eigene Skriptsprache. Es handelt sich letztendlich nur um einen Atmega32 in Basisbeschaltung und einen per SPI angeschlossenen ENC28J60. Ich habe die originale Pollin-Firmware nie gesehen, vermute aber stark, dass diese in C geschrieben ist. Das wäre auch der Weg, den du beschreiten müsstest: Das Skript müsstest du zu Fuß in C umsetzen. Wenn du bereits C kannst, empfehle ich dir das hervorragende Datenblatt des ENCs als Lektüre. Da steht alles drin was du wissen musst und noch ein bisschen mehr. Ohne C-Vorkenntnisse wäre das aber etwas oversized. In diesem Fall musst du in den sauren Apfel beißen und alles neu lernen, oder z.B. auf einen Rasbpi/deinen Router ausweichen.
:
Bearbeitet durch User
Hallo Zusammen, Danke an alle für eure Antwort Ich werds mit den Router oder RasPi versuchen, wobei ich mehr zu RasPi tendiere. Ist RasPi die beste Lösung wenn ich mich für einen Energiesparenden Einplatinencomputer entscheide oder gibt es da noch bessere Alternativen Falls RasPi eine gute Lösung ist, was wäre die beste Bezugsquelle und was sollte ich beim Kauf beachten? Im Voraus schon mal Danke Gruß Himmelreich
Der Router sollte für diese Aufgabe eigentlich ausreichen, dann verschwendest Du auch keine zusätzliche Energie. Falls es doch etwas Richtung RasPi sein soll, kann ich die Boards von Olimex (A13 Mini) empfehlen, die kommen im Standby mit deutlich weniger als 1 Watt aus. RasPi und auch das BeagleBone Black sind da deutlich energiehungriger.
Falls du bis nächstes Jahr warten kannst, wäre der Tessel vielleicht die perfekte Lösung: http://technical.io/ Ansonsten ist eine Telnet Verbindung und ein paar Post /GET requests ohne SSL natürlich auch von einem AVR aus möglich, erfordert aber viel mehr Software als ein Tessel (der basiert auf node.js)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.