Seite 1 von 1

Craftbeerpi Fehler Gembird unter dev 2.2 status [SOLVED]

Verfasst: Donnerstag 4. August 2016, 20:47
von not
Moin Gemeinde, moin Manuel!

Bislang funktionierte CBP auf meinem 2er RBP ohne Probleme.

Jetzt musste ich einen neuen Pi kaufen (hardware kapott). Also Version 3 gekauft, Touchscreen dran, 1w Thermometer dran und Gembird USB angeschlossen.

Installation : zuerste update und upgrade via apt-get, Abhängigkeiten installiert (sispm, . . . ).

Jetzt kann ich die Software starten und konfigurieren, die Thermometer sind implementiert und zeigen die Temperaturen an - soweit super. Wenn ich jetzt die Steckdosenleiste schalten will, zeigt das Webinterface an, dass die Dosen geschaltet werden, es passiert aber an der Steckerleiste nichts.

Wenn ich die Leiste via shell und dem Programm sispmctl ansteuere (mit sudo) funktioniert das einwandfrei.

App.log sagt folgendes:

Code: Alles auswählen

pi@kornundbluete:~/cbp_dev/craftbeerpi $ cat app.log 
INFO:brewapp:##########################################
INFO:brewapp:### NEW STARTUP
INFO:brewapp:SETUP GPIO Module Loaded
INFO:brewapp:SETUP PiFace Module Loaded
INFO:brewapp:SETUP GPIO Module for Buzzer
INFO:brewapp:## INITIALIZE DATA
INFO:brewapp:--> Method: initDriver() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/config.py
INFO:brewapp:--> Method: init() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/config.py
INFO:brewapp:--> Method: init() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/hardwareswitch.py
INFO:brewapp:--> Method: initDriver() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/config.py
INFO:brewapp:INIT Driver
INFO:brewapp:<brewapp.base.devices.gpio.BrewGPIO object at 0x75cd29f0>
INFO:brewapp:<brewapp.base.thermometer.w1_thermometer.OneWireThermometer object at 0x75cfd970>
INFO:brewapp:--> Method: initKettle() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/kettle.py
INFO:brewapp:--> Method: initBuzzer() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/buzzer.py
INFO:brewapp:BUZZER GPIO: 23
ERROR:brewapp:Channel must be an integer or list/tuple of integers
INFO:brewapp:--> Method: init() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/step.py
INFO:brewapp:--> Method: init() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/recipebook.py
INFO:brewapp:--> Method: sendStats() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/stats.py
INFO:brewapp:Sending stats
INFO:urllib3.connectionpool:Starting new HTTP connection (1): www.craftbeerpi.com
DEBUG:urllib3.connectionpool:"POST /stats.php HTTP/1.1" 200 20
INFO:brewapp:<Response [200]>
INFO:brewapp:--> Method: init2() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/hardwareswitch.py
INFO:brewapp:## INITIALIZE JOBS
INFO:brewapp:--> Method:stepjob() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/step.py
INFO:brewapp:--> Method:readTemp() File: /home/pi/cbp_dev/craftbeerpi/brewapp/base/thermo.py
INFO:werkzeug: * Running on http://0.0.0.0:5000/
DEBUG:geventwebsocket.handler:Initializing WebSocket
DEBUG:geventwebsocket.handler:Validating WebSocket request
DEBUG:geventwebsocket.handler:Attempting to upgrade connection
DEBUG:geventwebsocket.handler:WebSocket request accepted, switching protocols
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: send_into_ws
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: read_from_ws
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: _heartbeat
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: _heartbeat_timeout
DEBUG:geventwebsocket.handler:Closed WebSocket
DEBUG:socketio.virtsocket:Removing sessid='521900487655' client_queue[1] server_queue[1] hits=1 from server sockets
INFO:brewapp:Sending stats
INFO:urllib3.connectionpool:Starting new HTTP connection (1): www.craftbeerpi.com
DEBUG:urllib3.connectionpool:"POST /stats.php HTTP/1.1" 200 20
INFO:brewapp:<Response [200]>
DEBUG:geventwebsocket.handler:Initializing WebSocket
DEBUG:geventwebsocket.handler:Validating WebSocket request
DEBUG:geventwebsocket.handler:Attempting to upgrade connection
DEBUG:geventwebsocket.handler:WebSocket request accepted, switching protocols
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: send_into_ws
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: read_from_ws
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: _heartbeat
DEBUG:socketio.virtsocket:Spawning sub-Socket Greenlet: _heartbeat_timeout
INFO:brewapp:Switch on: 1
ERROR:brewapp:Can't get switch state Socket:; ERROR: Command 'sudo sispmctl -nqg ' returned non-zero exit status 249
INFO:brewapp:Switch off: 1
ERROR:brewapp:Can't get switch state Socket:; ERROR: Command 'sudo sispmctl -nqg ' returned non-zero exit status 249
INFO:brewapp:Switch on: 2
ERROR:brewapp:Can't get switch state Socket:; ERROR: Command 'sudo sispmctl -nqg ' returned non-zero exit status 249
INFO:brewapp:Switch off: 2
ERROR:brewapp:Can't get switch state Socket:; ERROR: Command 'sudo sispmctl -nqg ' returned non-zero exit status 249
" 'sudo sispmctl -nqg ' returned non-zero exit status 249 " scheint mein Problem zu sein. Wenn ich den Befehl in der shell absende und die Nummer der Dose anfüge (z.B. 1), kommt das erwartete Ergebnis ("0" oder "1"). Wenn ich keine Dosennummer mitgebe, kommt ein Fehler (ich glaube, dass genau das auch der Fehler ist).

Ich habe versucht unter brewapp/base/devices in der entsprechenden Datei gembird.py einen Fehler zu finden .... Grmpf.

Hat jemand einen Tip, Schimmer oder dergleichen ?

Ahoi und danke fürs nachdenken-
Sönke ! :thumbsup

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

Verfasst: Freitag 5. August 2016, 20:27
von not
So, habe mal weiter gebastelt und geforscht:
Das Problem, mit dem ich kämpfe entsteht in der Datei

craftbeerpi/ brewapp/base/devices/gembird.py

Da wird

Code: Alles auswählen

no = self.translateDeviceName(device)
no definiert, einerseits, um einen Switch ein oder aus zu schalten und um den Status des Switch auszulesen.
"no" definiert die Steckdose (1,2,3 oder 4).

Die Aktionen (Einschalten, Ausschalten oder Status auslesen) werden an eine shell weitergeleitet, ausgeführt und das Ergebnis verarbeitet, jeweils über den befehl "sispmctl", mal mit -o (anschalten), -f (ausschalten) oder -nqg (Numerisch in Kurzform (0 oder 1) den Status des Socket (der Dose) ausgeben).

Hierbei wird bei mir die Nummer der Dose ("no") nicht mitgegeben, entsprechend auch nichts geschaltet und ein Fehler beim Abrufen des Status produziert.

Wieso ist die Variable "no" bei mir leer?
Wenn ich CBP über sudo ./runserver.py laufen lasse bekomme ich folgenden output:

Code: Alles auswählen

INFO in hardwareswitch [/home/pi/cbp_dev/craftbeerpi/brewapp/base/hardwareswitch.py:106]:
Switch on: 1
--------------------------------------------------------------------------------
sispmctl: option requires an argument -- 'o'
Unknown Option: ?(3f)
Terminating
sispmctl: option requires an argument -- 'g'
Unknown Option: ?(3f)
Terminating
--------------------------------------------------------------------------------
ERROR in gembird [/home/pi/cbp_dev/craftbeerpi/brewapp/base/devices/gembird.py:48]:
Can't get switch state Socket:; ERROR: Command 'sudo sispmctl -nqg  ' returned non-zero exit status 249
--------------------------------------------------------------------------------
28-000004be3bee
--------------------------------------------------------------------------------
INFO in hardwareswitch [/home/pi/cbp_dev/craftbeerpi/brewapp/base/hardwareswitch.py:101]:
Switch off: 1
--------------------------------------------------------------------------------
sispmctl: option requires an argument -- 'f'
Unknown Option: ?(3f)
Terminating
sispmctl: option requires an argument -- 'g'
Unknown Option: ?(3f)
Terminating
--------------------------------------------------------------------------------
ERROR in gembird [/home/pi/cbp_dev/craftbeerpi/brewapp/base/devices/gembird.py:48]:
Can't get switch state Socket:; ERROR: Command 'sudo sispmctl -nqg  ' returned non-zero exit status 249
Wenn ich die Datei ...........gembird.py so modifiziere, dass jeweils im Command einfach die "1" an den Befehl geschrieben angehängt wird, schaltet Craftbeerpi meine Steckleiste (Dose nummer 1). D.h. es ist auch kein Problem mit Rechten für sispmctl oder dergl...

Wie kann ich das Problem lösen? Dammisch, eh...

Weiter suchend grüßt

Sönke :puzz :crying :Mad2 :Angry

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

Verfasst: Sonntag 28. August 2016, 14:14
von TrueBrew
Moin moin,

da dies mein erster Post ist, kurz ein paar Worte zu mir. Mit bisher vier Suden bin ich noch ganz am Anfang meiner Brau-Karriere und aktuell mit dem Profi Cook Einkocher unterwegs. Allerdings hatte ich schon nach dem ersten Sud ein starkes Bedürfnis, meine Anlage zu pimpen und zu automatisieren wo es möglich ist. Das macht wohl einen nicht unerheblichen Teile dieses Hobbys aus. :Wink

Großer Dank also an Manuel für diese tolle Software und auch an alle anderen, die sich hier beteiligen.

Ich habe mit Version 2.1 einen Testlauf gemacht und es hat soweit alles funktioniert. Allerdings würde ich gerne die ausgeklügeltere Overshoot Logik (von Norn) nutzen, weswegen ich direkt die dev2.2 installiert habe.

Da ich auch die Gembird Steckerleiste nutze, kann ich den Fehler bestätigen. Mit dem aktuellen Code kann man die einzelnen Sockets nicht ansteuern. Ich habe zwar keine Ahnung von Python, habe mich aber trotzdem mal ans Debuggen gewagt... möglicherweise mit Erfolg.

In der Datei craftbeerpi/brewapp/base/devices/gembird.py muss folgende Zeile (kommt drei mal vor):

Code: Alles auswählen

no = self.translateDeviceName(device)
durch

Code: Alles auswählen

switch_name = self.getConfigValue(device, "switch", None)
if switch_name is None:
    app.logger.warning("SWITCH NOT FOUND IN CONFIG")
    pass

no = self.translateDeviceName(switch_name)
ersetzt werden, außerdem

Code: Alles auswählen

def translateDeviceName(self, name):
    return name[6:]
durch

Code: Alles auswählen

def translateDeviceName(self, name):
    if(name == None or name == ""):
        return None
    return int(name[6:])
Wenn man OvershootLogic_by_Norn nutzen möchte, muss in der Datei craftbeerpi/brewapp/base/automatic/overshoot_advanded.py

Code: Alles auswählen

time.sleep(1)
durch

Code: Alles auswählen

socketio.sleep(1)
ersetzt werden.

Ich habe es noch nicht getestet, aber grundsätzlich sollte es so möglich sein, mit der Version dev2.2 und der Gembird zu brauen. Im Dashboard lassen sich die Sockets nun jedenfalls korrekt ansprechen. Natürlich alles unter Vorbehalt und nur für die Ungeduldigen (wie mich) gedacht, die nicht auf die finale Version warten wollen :-)

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

Verfasst: Samstag 3. September 2016, 08:57
von not
TrueBrew hat geschrieben:Moin moin,

da dies mein erster Post ist, kurz ein paar Worte zu mir. Mit bisher vier Suden bin ich noch ganz am Anfang meiner Brau-Karriere und aktuell mit dem Profi Cook Einkocher unterwegs. Allerdings hatte ich schon nach dem ersten Sud ein starkes Bedürfnis, meine Anlage zu pimpen und zu automatisieren wo es möglich ist. Das macht wohl einen nicht unerheblichen Teile dieses Hobbys aus. :Wink

Großer Dank also an Manuel für diese tolle Software und auch an alle anderen, die sich hier beteiligen.
...

...
Ich habe es noch nicht getestet, aber grundsätzlich sollte es so möglich sein, mit der Version dev2.2 und der Gembird zu brauen. Im Dashboard lassen sich die Sockets nun jedenfalls korrekt ansprechen. Natürlich alles unter Vorbehalt und nur für die Ungeduldigen (wie mich) gedacht, die nicht auf die finale Version warten wollen :-)

Moin Truebrew:
Das war der geilste erste Post hier, den ich gesehen habe!

Funktoiniert, mein Problem ist gelöst. Danke Dir
Gut Sud und viele Grüße,
Sönke! *beide Daumen hoch!*

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

Verfasst: Dienstag 6. September 2016, 08:41
von Manuel83
Super, ich werde das mal in die Version 2.2 übernehmen. Kann aber noch ein paar Tage dauern. :thumbup

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

Verfasst: Samstag 31. Dezember 2016, 16:55
von coors
Manuel83 hat geschrieben:Super, ich werde das mal in die Version 2.2 übernehmen. Kann aber noch ein paar Tage dauern. :thumbup
Hi Manuel !

Sollte Gembird unter 2.2 schon funktionieren ?
Bei mir funkt sie nur unter 2.1 :crying

lg
Michael

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status [SOLVED]

Verfasst: Sonntag 1. Januar 2017, 14:12
von cars10
Hab das mal unter github eingebaut und einen pull request abgeschickt.
Sprich, Manuel könnte es einfach übernehmen (nachdem er es nochmal gecheckt hat).

Grüße,

cars10