Es gab ne Fehlermeldung wegen dem SOAP-Client, dass der nicht zum Host connecten konnte.
Die hat das Script komplett abgebrochen. Da das Ganze nicht so kritisch ist, hab ich das mit try {} catch() {} abgefangen und bin einfach in den nächsten Schleifendurchlauf gesprungen. Jetzt scheint es durch zu laufen
Posts by DerMega
-
-
SUpergeil. Dank deinem Tipp konnte ich zwei Fehler in meinem Script identifizieren.
Einer ist schon behoben, dem Anderen gehe ich jetzt nach. THX
CodePHP Notice: Undefined variable: fromWE in /var/www/startStopNAS.php on line 115 PHP Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host in /var/www/startStopNAS.php:66 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://fritz.bo...', 'urn:dslforum-or...', 1, 0) #1 /var/www/startStopNAS.php(66): SoapClient->__call('GetHostNumberOf...', Array) #2 /var/www/startStopNAS.php(66): SoapClient->GetHostNumberOfEntries() #3 {main} thrown in /var/www/startStopNAS.php on line 66
-
-
Von den damaligen Sensoren habe ich noch einige daheim rumliegen. Fast alle ungenutzt.
Bei Interesse schreib mir mal ne PM -
Hallo ihr lieben,
ich habe ein PHP Script, was ich über die rc.local starten lasse mit "php /var/ww/startStopNAS.php >> /home/pi/debugLog.txt&"
Das läuft zu Anfang wunderbar an aber nach unbestimmter Zeit, mal 40 Minuten mal mehrere Stunden, bricht es einfach ab ohne Meldung.
Anbei mal das komplette Script. Vielleicht habt ihr eine Idee, woran das liegen könnte oder wie ich heraus bekomme ob irgendwo auf meinem Pi dazu ein Log existiert.
PHP
Display More<?php //Error Handling error_reporting(E_ALL | E_ERROR | E_NOTICE | E_PARSE | E_STRICT | E_WARNING); // FritzBox Verbindungsdaten $fritzbox_ip = "fritz.box"; $tr64_port = "49000"; /****************************************************************/ /* Handys und PCs zum checken */ $users['DerMega'] = Array('presence' => 0, 'offCount' => 0); $users['Ninchen-Handy'] = Array('presence' => 0, 'offCount' => 0); $users['SchlafzimmerPi'] = Array('presence' => 0, 'offCount' => 0); $users['WohnzimmerPi'] = Array('presence' => 0, 'offCount' => 0); $users['MegaPC'] = Array('presence' => 0, 'offCount' => 0); $users['NAS'] = Array('presence' => 0, 'offCount' => 0); /****************************************************************/ /*NAS Daten und Accounts */ $nasIP = ""; $winUser = ""; $winUserPW = ""; $nasMAC = ""; /****************************************************************/ /* Hilfsvariablen */ $morningFromWeek = new DateTime('5:44'); $morningToWeek = new DateTime('0:00'); $eveningFromWeek = new DateTime('22:00'); $eveningToWeek = new DateTime('23:59:59'); $fromWEMorning = new DateTime('8:00'); $toWEEvening = new DateTime('23:59:59'); $fromWENight = new DateTime('0:00'); $toWENight = new DateTime('2:00'); $shutDownSent = 0; /****************************************************************/ define('DEVELOPMENT', false); // NUR FÜR ENTWICKLUNG $breakout = 0; // NUR FÜR ENTWICKLUNG $b = 0; // NUR FÜR ENTWICKLUNG while($breakout == 0) { /* Switcher (allow) on/off */ $switcher = trim(file_get_contents("/var/www/switcher/nasStartStopAllow.txt", "r")); $holidayMode = trim(file_get_contents("/var/www/switcher/nasHolidayMode.txt", "r")); /****************************************************************/ if($switcher) { echo date("d.m.Y - H:i:s")." | Running. HolidayMode is: ".($holidayMode ? 'ON' : 'OFF')."\n"; /* SOAP Abfrage */ $client = NULL; $client = new SoapClient(null,array( 'location' => "http://" . $fritzbox_ip . ":" . $tr64_port . "/upnp/control/hosts", 'uri' => "urn:dslforum-org:service:Hosts:1", 'soapaction' => "urn:dslforum-org:service:Hosts:1#GetSpecificHostEntry", 'noroot' => False )); /****************************************************************/ /* Ergebnisse zählen */ $numberOfHosts = $client->GetHostNumberOfEntries(); /****************************************************************/ // Abfrage welcher Host online ist: $userPresent = 0; if (!(is_soap_fault($numberOfHosts))) { for ($i=0;$i<$numberOfHosts;$i++) { $host = $client->GetGenericHostEntry(new SoapParam($i,'NewIndex')); foreach($users AS $key => $value) { if($host['NewHostName'] == $key) { if($host['NewActive'] == 1) { if($host['NewHostName'] != "NAS") { $userPresent = 1; } $users[$key]['presence'] = 1; $users[$key]['offCount'] = 0; } else { $users[$key]['offCount']++; $users[$key]['presence'] = 0; } } } } } else { echo date("d.m.Y - H:i:s")." | Keine Hosts vorhanden.\n"; } /****************************************************************/ /* NAS ist Online */ if($users['NAS']['presence'] == 1) { echo date("d.m.Y - H:i:s")." | NAS online\n"; echo "T: ".$users['DerMega']['offCount']." J: ".$users['Ninchen-Handy']['offCount']." SZ: ".$users['SchlafzimmerPi']['offCount']." WZ: ".$users['WohnzimmerPi']['offCount']." PC: ".$users['MegaPC']['offCount']."\n"; /* NAS ausschalten, wenn jeder Client mindestens 5 Mal als offline gesehen wurde */ if($users['SchlafzimmerPi']['offCount'] >= 5 && $users['WohnzimmerPi']['offCount'] >= 5) { // Nur wenn alle PCs aus sind die Handys checken ODER nach Uhrzeit abschalten $now = new DateTime(); $wDay = date('N'); if($users['DerMega']['offCount'] >= 5 && $users['Ninchen-Handy']['offCount'] >= 5 || ( /* wochentags */ ($now < $morningFromWeek && $now > $morningToWeek) || ($now > $eveningFromWeek && $now <= $eveningToWeek) && ($wDay >= 1 && $wDay <= 5) && !$holidayMode ) || /* am WE oder im Urlaub */ ( ($now < $fromWE && $now > $toWE && (($wDay >= 6 && $wDay <= 7) || $holidayMode)) ) ) { /* NAS abschalten */ // Logfile schreiben $logText = '<div class="stopping">'.date("d.m.Y - H:i:s").' Stoppe NAS</div><div class="row"><div class="cell">Tobi</div><div class="cell">Janine</div><div class="cell">Pi SZ</div><div class="cell">Pi WZ</div><div class="cell">PC</div></div><div class="row"><div class="cell">'.$users['DerMega']['offCount'].'</div><div class="cell">'.$users['Ninchen-Handy']['offCount'].'</div><div class="cell">'.$users['SchlafzimmerPi']['offCount'].'</div><div class="cell">'.$users['WohnzimmerPi']['offCount'].'</div><div class="cell">'.$users['MegaPC']['offCount'].'</div></div>'; writeLog($logText); /****************************************************************/ // Befehl zum Abschalten // $nasOnlineState = true; // if($shutDownSent) { // if(!pingNAS()) { // $nasOnlineState = false; // } // } // if($nasOnlineState) { echo date("d.m.Y - H:i:s")." | Führe Shutdown durch\n"; echo "T: ".$users['DerMega']['offCount']." J: ".$users['Ninchen-Handy']['offCount']." SZ: ".$users['SchlafzimmerPi']['offCount']." WZ: ".$users['WohnzimmerPi']['offCount']." PC: ".$users['MegaPC']['offCount']."\n"; $cmd = "net rpc shutdown -f -I ". $nasIP ." -U ". $winUser ."%". $winUserPW; $result = shell_exec($cmd); echo date("d.m.Y - H:i:s")." | ".$result."\n"; $shutDownSent = 1; // Der NAS Zeit zum Einschlafen geben sleep(300); // } } } } else { /* NAS ist offline */ echo date("d.m.Y - H:i:s")." | NAS offline\n"; echo "T: ".$users['DerMega']['offCount']." J: ".$users['Ninchen-Handy']['offCount']." SZ: ".$users['SchlafzimmerPi']['offCount']." WZ: ".$users['WohnzimmerPi']['offCount']." PC: ".$users['MegaPC']['offCount']."\n"; $now = new DateTime(); $wDay = date('N'); if( ((($now > $morningFromWeek && $now < $eveningToWeek) && ($wDay >= 1 && $wDay <= 5)) || ((($now > $fromWEMorning && $now < $toWEEvening) || ($now > $fromWENight && $now < $toWENight)) && (($wDay >= 6 && $wDay <= 7) || $holidayMode))) && ($users['DerMega']['presence'] == 1 || $users['Ninchen-Handy']['presence'] == 1) ) { // Logfile schreiben $logText = '<div class="starting">'.date("d.m.Y - H:i:s").' Starte NAS</div>'; writeLog($logText); /****************************************************************/ echo date("d.m.Y - H:i:s")." | Starte NAS\n"; echo "T: ".$users['DerMega']['offCount']." J: ".$users['Ninchen-Handy']['offCount']." SZ: ".$users['SchlafzimmerPi']['offCount']." WZ: ".$users['WohnzimmerPi']['offCount']." PC: ".$users['MegaPC']['offCount']."\n"; $cmd = "wakeonlan ".$nasMAC; $result = shell_exec($cmd); echo date("d.m.Y - H:i:s")." | ".$result."\n"; // Der NAS Zeit zum Aufwachen geben sleep(75); } } flush(); /* Schlafen für 15 Sekunden um die FritzBox nicht zu überlasten */ sleep(15); /****************************************************************/ /* NUR FÜR ENTWICKLUNG */ if(DEVELOPMENT) { $b++; if($b == 50) { echo date("d.m.Y - H:i:s")." | ".$b." Durchläufe\n"; $breakout = 1; } } /************************/ } else { echo date("d.m.Y - H:i:s")." | Allow Off. Sleeping 60\n"; sleep(60); } } function writeLog($logText) { $file_data = $logText."\n"; $lines = file('/var/www/startStopLog.txt', FILE_IGNORE_NEW_LINES); for($i = 0; $i <= 9; $i++) { if(isset($lines[$i])) { $file_data .= $lines[$i]."\n"; } } file_put_contents('/var/www/startStopLog.txt', $file_data); } function pingNAS() { $response = shell_exec("ping -c 1 ".$nasIP); $lines = explode("\n", $response); $packets = explode(", ", $lines[4]); $received = trim(str_replace(" received", "", $packets[1])); return $received; } ?>
-
Ach stimmt, hab mich ja gar nicht mehr gemeldet.
Habe ein Austauschgerät erhalten und das funktionierte direkt. Bei mir jetzt also auch alles gut! -
Hab mal den Strom gemessen. 72µA.
Das wird so wenig sein, weil ich das Display ja nicht ansteuern kann und die Ziffern dunkel bleiben. -
Habe dies bestellt:
http://www.ebay.de/itm/TM1637-4-D…353.m2749.l2649Hatte aus auch an 3V3 von Extern hängen. GND verbunden und trotzdem Doof. Ich teste aber mal ob das was zieht.
Danke für den tipp -
Hab nochmal CLK und DI0 getauscht aber kein Anderes Ergebnis. Sowohl der Arduino Nano als auch der ESp8266 sterben, wenn ich die Kontakte irgendwie mit den Controllern verbinde
-
Nein also DAS ist mir neu *hust*
Code
Display More#include "TM1637.h" tm1637 display(PD7, PD4); uint16_t count = 0; void setup() { Serial.begin(115200); Serial.println(); Serial.println(); Serial.println("Starting"); display.setBrightness(12); } void loop() { display.writeInteger(count++); Serial.println(count); delay(1000); }
Der Serial Output läuft einwandfrei, wenn das Display NICHT angeschlossen ist.
-
Hi Leute,
ich habe mir nach der Lektüre des Projektes von Neueinsteiger eine TM1637 7 Segment Anzeige geholt.
Der Thread:
ESP8266 gibt Uhrzeit auf 7 Segment LED Anzeige ausHabe diese an meinem NodeMCU als auch am Arduino Nano getestet. Immer wenn ich DIO von der Anzeige am Controller verbunden habe, dann stürzt der Microcontroller ab oder startet gar nicht erst.
Habt ihr ne Idee, was das sein könnte? Da ist wohl die Anziege kaputt oder?
Ohne angeschlossene Anzeige läuft der Code einwandfrei. Mit Anzeige geht gar nichts. -
Hab nochmal alles neu zusammen gestellt. Ergebnis bleibt gleich.
Zwischen ESP und G habe ich noch einen 220Ohm Widerstand.
Das Interessante: zwischen GND-ESP und GPIO messe ich 3V oder 0,11V, wenn ich den einfach nur HIGH oder LOW ziehe.Messe ich aber zwischen GND-ESP und G-MOSFET, dann steht das da dauerhaft auf 0,98V oO
Kann sich das wer erklären?
Automatisch zusammengefügt:
EDIT:es geht. Scheinbar hab ich irgendwie den ersten IRLZ34N zerlegt und der hatte nen dauerkurzschluss. Hab jetzt einfach nen neuen probiert und siehe da, es geht so wie es soll!
-
Danke Timm Thaler.
Auf die sortierfunktion hätt ich auch mal selber kommen können. Bin auf der Seite schon dauernd rumgespukt.Fette Mosfets meinst du mit viel Ampere Kapazität?
Der IRLR7843 hat z.B. nur 2,3V Uds(th) und auch nur 3,3mOhm Rds(ON) aber 164A bei 140W durchlassen. Das wäre dann zu heftig?Was haltet ihr von der Alternative einen ULN2003 zu nehmen und da dann mehrere Darlingtons parallel zu schalten?
Automatisch zusammengefügt:Quote from "VeryPrivat" pid='297533' dateline='1504097713'
Habe mir Deinen Vorschlag gar nicht angesehen .
Also ich sehe keinen wirklichen Grund warum der IRLZ44N nicht funktionieren sollte: Er kann bei 3V UGS schon bis zu 5A durchschalten. Ich vermute auch, dass am Aufbau was nicht passt?
Du hast gegen Masse geschaltet:
- G an GPIO des ESP
- S an GND des ESP
- D an K des LED Streifens
- A des LED Streifens an +12V
- GND des ESP und der 12V verbunden
Somit sollte es schon klappen...Check! So ist der Aufbau. 10kO noch zwischen S und G.
Werds heute oder morgen nach der Arbeit nochmal neu zusammen stecken und wenns nicht läuft mal n Foto machen. -
Öhm ja, das Forum hat jetzt irgendwie meine Antwort verschluckt ....
Also MOSFETS suche ich aus dem Grund, weil ich das überall gelesen habe, dass das gut für PWM und höhere Ströme sein soll.Den IRLZ44N hatte ich auhc schon aufm Schirm, da ich aber den IRLZ34N daheim habe und mit dem die Stripes nur gedimmt zum glühen bringe und sie ihre Leuchtstärke nicht verändern, habe ich dann beide ausgeschlossen. Evtl. ist da bei meinem Aufbau ja auch irgendwas falsch. Soweit ich dann gelesen habe, würden die 3V3 vom ESP wohl nicht ganz reichen, damit der sauber schaltet.
Mit dem Darlington, das schaue ich mir mal an.
-
45€ ist schon herb. Ich wollte das mit Sachen umsetzen, die ich hier habe.
12V Netzteile liegen hier zu hauf rum. Daher der gedanke mit den MOSFETS.
Ich will ja auhc nur 1m damit ansteuern. -
Vorab: Das Problem hat sich als kaputtes Bauteil heraus gestellt.
Für mich funktioniert der IRLZ34N jetzt 1A.Ursprünglicher Post:
============================================================================
Hallo ihr lieben,ich habe mir in den Kopf gesetzt unseren verstorbenen Phillips Tageslichtwecker durch einen Eigenbau mit einem ESP8266 und vorhandenen 12V Ledstripes zu ersetzen.
Bei den Stripes will ich maximal einen Meter nutzen, der laut Hersteller 2,4A zieht.Diesen würde ich gerne vom ESP aus per integriertem PWM dimmen. Nun hab ich ne Menge geggogelt und nach MOSFETS gesucht, habe mir auch schon IRLZ34N besorgt, nur um festzustellen, dass die bei 3V3 nicht richtig funktionieren
Ich habe halt noch nicht die richte Suche oder Webseite gefunden die mir da mal was ausspuckt. Was ich herausgefunden habe ist, dass ich mal nach SMD-FETs suchen sollte, da da viel mehr LogicLevel Typen dabei sind die bei 2V schon voll durchgeschaltet sind. Aber da welche zu finden, die man dann auch noch unkompliziert (nice to have wäre noch Lieferzeit unter 2 wochen) bekommt gestaltet sich für mich als Unwissenden auf dem Gebiet als sehr schwierig
Habe z.B. diesen aufgetan "AOD476". Nur in DE wüsst ich nicht, woher man den beziehen soll.Könnt ihr mich da in eine Richtung schubsen oder habt aus der Bastelerfahrung heraus mal spontan einen MOSFET-Typen zur Hand, der den Kriterien entspricht?
Grüße
Tobias
-
Coole Sache. Bin grade drüber gestolpert und merke, dass das genau das ist was ich brauche
Wie sieht das mit der Helligkeit des Displays aus? Bekommt man das auf Schlafzimmertaugliche Beleuchtungsstärken? Also sehr dunkel? -
-
Hi Leute,
ich habe hier ein Raspian Image, das aus Noobs heraus erstellt wurde. Wenn bei diesem Image über SSH und raspi-config den hostname mehrmals ändere, dann kann ich den Pi unter 2 Hostnames ansprechen. Sowohl pingen als auch aufschalten über Putty geht.
Kann mir das einer erklären?
Das Blöde ist halt, dass einer der beiden Namen eigentlich für einen anderen Pi gedacht war und jetzt nicht mehr verwendet werden kann.Gruß
-
Ja der Loop ist nur mit dem Tiny da, wie beschrieben. Wundert mich halt, da die Potentiale an den Pins stimmen. Oder sind 3V3 auf dem Resetpin falsch? Würde mich jetzt wundern ...