Craftbeerpi Fehler Gembird unter dev 2.2 status [SOLVED]

Antworten
Benutzeravatar
not
Posting Senior
Posting Senior
Beiträge: 422
Registriert: Montag 3. Dezember 2012, 08:38
Wohnort: Leverkusen

Craftbeerpi Fehler Gembird unter dev 2.2 status [SOLVED]

#1

Beitrag 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
Zuletzt geändert von not am Dienstag 6. September 2016, 10:20, insgesamt 1-mal geändert.
... nicht vergessen: immer schön die Schaumpumpe schmieren!
Benutzeravatar
not
Posting Senior
Posting Senior
Beiträge: 422
Registriert: Montag 3. Dezember 2012, 08:38
Wohnort: Leverkusen

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

#2

Beitrag 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
... nicht vergessen: immer schön die Schaumpumpe schmieren!
TrueBrew
Neuling
Neuling
Beiträge: 1
Registriert: Sonntag 28. August 2016, 13:57

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

#3

Beitrag 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 :-)
Benutzeravatar
not
Posting Senior
Posting Senior
Beiträge: 422
Registriert: Montag 3. Dezember 2012, 08:38
Wohnort: Leverkusen

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

#4

Beitrag 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!*
... nicht vergessen: immer schön die Schaumpumpe schmieren!
Benutzeravatar
Manuel83
Posting Klettermax
Posting Klettermax
Beiträge: 249
Registriert: Dienstag 16. Juni 2015, 09:57

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

#5

Beitrag von Manuel83 »

Super, ich werde das mal in die Version 2.2 übernehmen. Kann aber noch ein paar Tage dauern. :thumbup
coors
Neuling
Neuling
Beiträge: 8
Registriert: Sonntag 10. Januar 2016, 10:04
Wohnort: Eggersdorf bei Graz

Re: Craftbeerpi Fehler Gembird unter dev 2.2 status

#6

Beitrag 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
Benutzeravatar
cars10
Posting Junior
Posting Junior
Beiträge: 61
Registriert: Montag 16. Mai 2016, 20:48

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

#7

Beitrag 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
"Malz hat das Bestreben Bier zu werden." Drew Beechum (sinngemäß)
Antworten