Mit dem Pi alle Geräte einfangen // ink. Fragen

Begonnen von Flipper92, 04 Februar 2017, 14:42:59

Vorheriges Thema - Nächstes Thema

Flipper92

Hallo zusammen,
ich hab viel gelesen wie ich mit fhem und dem Pi in die Hausautomation starte.
Ich hab auch schon konkrete Pläne wo ich am Ende ankommen möchte, aber ich weiß nicht wie ich dahin komme.
Mein aktuelles Problem ist, das ich nicht weiß wie ich alle aktuell vorhandenen Systeme verbinde.

Aktuell vorhandene Technik:
- Server: Pi 1 (Altbestand ;-) ) *
- 5x Thermostat: eQ-3 CC-RT-BLE (Bluetooth) **
- 5x Thermo-/Hygrosensor: Renkforce FT007TH (433Mhz) ***
- 6x Funksteckdosen + Fernbedienung: Renkforce 1208454 (433Mhz) ****
- 1x Wassermelder: Asus FU8330 (868Mhz)

Geplante Hardware Erweiterungen (Stück für Stück):
- 1x noch ein Wassermelder (noch ein Asus)
- 7-10x Fenster-/Türkontakte (433/868Mhz)
- 1-3x Strommesgeräte
- 1x Akku-Kamera (verm. WLAN)
- 1x Bildschirm (optische Meldung)
- 1x Lautsprecher (akustische Meldung)
- viele Lampen (Philips Hue oder ähnliches; LED Strips)

Geplante Software Erweiterungen:
- Fahrplan Bahn (Realisiert 03.03.17 mit DBPlan)
- Müllkallender
- wiederhollende Termine
- Grundriss
- Lüftungserinnerung *****
- Anwesenheitserkennung mit lepresenced (erledigt)
Nun meine Frage:
Wie bekomme ich die Sachen alle verbunden?
Vor allem 433 und 868Mhz.

Gruß Flipper

#########

Edit:
* Wurde ausgetauscht gegen ein Pi3. Der Pi1 war zu langsam und hat nicht mal die Seite aufgebaut.

** Hat super Funktioniert dank dem EQ3-BT Modul

*** Erledigt mit deiesem Beitrag

**** Sind IT Dosen und wurden sofort erkannt

***** Umgesetzt mit dem TelegramBot

Thorsten Pferdekaemper

Hi,

wahrscheinlich kann Dir niemand sagen, wie Du genau diesen Gerätezoo am besten mit FHEM verbindest. Irgendwie geht es aber bestimmt. Ich würde Dir empfehlen, da mal Stück für Stück anzufangen.
Also erst einmal FHEM auf Deinem Pi ganz ohne Geräte zum Laufen bringen und dann das hier durchspielen: https://wiki.fhem.de/wiki/Erste_Schritte_in_FHEM
Auch wenn Du sagst, Du hast viel gelesen: Das hier auch? http://fhem.de/Heimautomatisierung-mit-fhem.pdf

Wenn Du Deinen Pi mit FHEM am Laufen hast, und auch mal erfolgreich ein notify und ein at angelegt hast, dann entscheide Dich für genau eins der Geräte auf Deiner Liste und versuche das mit FHEM zu verbinden. Natürlich kannst Du dann gerne wieder hier nachfragen, aber die ganze Liste abzuarbeiten hat bestimmt keiner Lust.

Gruß,
  Thorsten
FUIP

Flipper92

Hey Thorsten,
danke für die schnelle Antwort.

Werd es so machen, wie du es gesagt hast. Eins nach dem anderen.

Allgemeine Frage, bevor ich mich einbuddel und anfange:
Ist es möglich an einem Pi sowohl 433mhz als auch 868Mhz zu funken und empfangen? (Ein ja oder nein reicht für den Anfang)

Gruß Flipper

klaso

Raspberry Pi 2 B+; Software: Raspbian Jessie, Fhem 5.8
ZWave, Enocean, FBAHAHTTP, ENIGMA2
Barebone mit openmedivault und Fhem5.8, MySQL, MyObis, VBUS LAN-Adapter in Fhem, Homematic CCU2; Jeelink mit TX29IT, HMCCU: Schnittstelle CCU2 - FHEM

Thorsten Pferdekaemper

Zitat von: Flipper92 am 04 Februar 2017, 15:22:11Allgemeine Frage, bevor ich mich einbuddel und anfange:
Ist es möglich an einem Pi sowohl 433mhz als auch 868Mhz zu funken und empfangen? (Ein ja oder nein reicht für den Anfang)
Ja, das geht. Die Sender/Empfänger gibt es z.B. per USB und man kann mehrere an einen Pi anschließen. Es gibt auch welche, die man umschalten kann, aber ich würde das nicht empfehlen. Besser ist es, für jede Frequenz (und ggf. für jedes Protokoll) ein dediziertes Gateway zu haben.
Gruß,
  Thorsten
FUIP

Flipper92

Zitat von: Thorsten Pferdekaemper am 04 Februar 2017, 14:57:44
Das hier auch? http://fhem.de/Heimautomatisierung-mit-fhem.pdf
Scheinbar hab ich nur oberflächliche Sachen über Fhem gelesen. Danke für die PDF.

Da ich die Funksteckdosen und die Fernbedienung dazu bereits habe, würde ich gerne mit denen anfangen.

Hab ich das richtig gelesen, das ich dann dafür den CUL C1101-USB-Lite 433MHz (CUL433 [CUL3-433-OEM] benötige? Oder gibt es auch günstigere Alternativen?

Gruß Flipper

mw77

HM, HMIP, Shelly, und anderes

Flipper92

#7
Hab den Pi 1 durch einen Pi3 getauscht. (Der Pi1 hat mir die Seite überhaupt nicht aufgebaut. Vermutlich war aber auch die SD Karte zu langsam)

Hab vor zwei Wochen die Teile bestellt, die ersten Sachen sind schon lange da, aber manches braucht länger (wer nichts zahlen will muss sich halt gedulden :-D ) Ich hab mich für den SIGNALduino mit 433mhz (https://wiki.fhem.de/wiki/SIGNALduino) entschieden.

Die Bluetooth Thermostate sind soweit eingebunden (nur ein Raum hat schlechten Empfang, aber der Server steht auch noch nicht an seinem Zielort. (Das Problem mit dem Bluetooth wurde durch ein sleep vor FHEM gelöst. (https://wiki.fhem.de/wiki/Raspberry_Pi_3:_GPIO-Port_Module_und_Bluetooth # Schritt 7)
(Modul von hier: https://forum.fhem.de/index.php?topic=60595.0)

Nun werde ich mit diesen Thermostaten anfangen zu Testen, wie was funktioniert.

(Ich hoff es ist okay, wenn ich hier ein wenig das vorgehen Protokolliere und meine Erfolge (und Lösungsansatz) aufschreibe.
Dann können andere (und ich später auch) das nochmal nachlesen.

Flipper92

Hey zusammen.
Und das nächste Problem. :-[

Der SIGNALduino findet kein Signal. Dabei befinden sich Funksteckdosen und Funkthermostate in der Nähe.

Log Eintrag:

2017.02.23 19:43:01 1: Including fhem.cfg
2017.02.23 19:43:01 3: telnetPort: port 7072 opened
2017.02.23 19:43:01 3: WEB: port 8083 opened
2017.02.23 19:43:01 3: WEBphone: port 8084 opened
2017.02.23 19:43:01 3: WEBtablet: port 8085 opened
2017.02.23 19:43:01 2: eventTypes: loaded 107 events from ./log/eventTypes.txt
2017.02.23 19:43:01 3: EQ3BT: EQ-3 Bluetooth Thermostat 2.0.0
2017.02.23 19:43:01 3: EQ3BT: EQ-3 Bluetooth Thermostat 2.0.0
2017.02.23 19:43:01 3: EQ3BT: EQ-3 Bluetooth Thermostat 2.0.0
2017.02.23 19:43:01 3: EQ3BT: EQ-3 Bluetooth Thermostat 2.0.0
2017.02.23 19:43:01 3: EQ3BT: EQ-3 Bluetooth Thermostat 2.0.0
2017.02.23 19:43:01 2: Wetter: encrypt crypt:500c55510c510e1f585077560c4c190052/crypt:76114d5c074a5c00 to crypt:500c55510c510e1f585077560c4c190052/crypt:76114d5c074a5c00
2017.02.23 19:43:02 3: sduino: IDlist MS 0 1 13 14 15 17 2 22 23 25 3 32 33 35 38 4 41 45 51 55 6 7
2017.02.23 19:43:02 3: sduino: IDlist MU 13.1 16 20 21 24 26 27 28 29 30 31 34 36 37 39 40 42 44 44.1 46 48 49 5 50 56 59 60 8 9
2017.02.23 19:43:02 3: sduino: IDlist MC 10 11 12 18 43 47 52 57 58
2017.02.23 19:43:02 3: Opening sduino device /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
2017.02.23 19:43:02 3: Setting sduino serial parameters to 57600,8,N,1
2017.02.23 19:43:02 1: sduino/define: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@57600
2017.02.23 19:43:02 1: sduino/init: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@57600
2017.02.23 19:43:02 3: sduino device opened
2017.02.23 19:43:02 1: Including ./log/fhem.save
2017.02.23 19:43:03 3: Wetter.Rusenschloss: I/O device is Wetter
2017.02.23 19:43:04 1: BlockingInformParent (BlockingStart): Can't connect to localhost:38040: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.02.23 19:43:04 1: BlockingInformParent (EQ3BT_processGatttoolResult): Can't connect to localhost:38040: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.02.23 19:43:05 1: usb create starting
2017.02.23 19:43:05 3: Probing CUL device /dev/ttyAMA0
2017.02.23 19:43:05 3: Probing TCM_ESP3 device /dev/ttyAMA0
2017.02.23 19:43:06 3: Probing FRM device /dev/ttyAMA0
2017.02.23 19:43:11 1: usb create end
2017.02.23 19:43:11 0: Featurelevel: 5.8
2017.02.23 19:43:11 0: Server started with 23 defined entities (fhem.pl:13447/2017-02-19 perl:5.020002 os:linux user:fhem pid:31611)
2017.02.23 19:43:11 3: sduino/init: disable receiver (XQ)
2017.02.23 19:43:11 3: sduino/init: get version, retry = 0
2017.02.23 19:43:11 2: sduino: initialized. v3.3.1-dev
2017.02.23 19:43:11 3: sduino/init: enable receiver (XE)
2017.02.23 19:43:11 3: FHEMWEB WEB CSRF error: fhem_9541150074442.99 ne fhem_94103711464100.1. For detals see the csrfToken FHEMWEB attribute
2017.02.23 19:43:21 3: telnetForBlockingFn_1487875401: port 42417 opened
2017.02.23 19:43:32 3: FHEMWEB WEB CSRF error: fhem_9541150074442.99 ne fhem_94103711464100.1. For detals see the csrfToken FHEMWEB attribute
2017.02.23 19:44:11 3: sduino/KeepAliveOk: 0 retry = 1 -> get ping
2017.02.23 19:45:51 3: EQ3BT (Jennifer.Thermostat): updateSystemInformation, 0x0411, 00 failed 20 times.
2017.02.23 19:46:08 3: EQ3BT (Jennifer.Thermostat): updateStatus, 0x0411, 03110217132E failed 20 times.
2017.02.23 19:46:11 3: sduino/KeepAliveOk: 0 retry = 1 -> get ping
2017.02.23 19:48:11 3: sduino/KeepAliveOk: 0 retry = 1 -> get ping
2017.02.23 19:50:11 3: sduino/KeepAliveOk: 0 retry = 1 -> get ping
(........)


Verkabelung:
Nano     TX       RX
GND    GND     GND
+5V     VCC     VCC
D2                   DATA
D11     DATA 

Produkte:
- ATmega328P
- FS1000A
- XY-MK-5V (Der RXB-6 ist leider noch unterwegs)

Ich glaube ich hab die Spezifikation für das USB falsch, aber wie bekomm ich das raus? (Hab das aus dem Wiki benutzt und der Status ist dennoch offen.)
Das Flaschen ging scheinbar ohne Probleme:

flashing Arduino sduino
hex file: ./FHEM/firmware/SIGNALduino_nano328.hex
port: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
log file: ./log/SIGNALduino-Flash.log
sduino closed
command: avrdude -c arduino -b 57600 -P /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 -p atmega328p -vv -U flash:w:./FHEM/firmware/SIGNALduino_nano328.hex 2>./log/SIGNALduino-Flash.log

--- AVRDUDE ---------------------------------------------------------------------------------

avrdude: Version 6.1, compiled on Jul  7 2015 at 10:29:47
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"

         Using Port                    : /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "./FHEM/firmware/SIGNALduino_nano328.hex"
avrdude: input file ./FHEM/firmware/SIGNALduino_nano328.hex auto detected as Intel Hex
avrdude: writing flash (17738 bytes):

Writing | ################################################## | 100% 5.69s

avrdude: 17738 bytes of flash written
avrdude: verifying flash memory against ./FHEM/firmware/SIGNALduino_nano328.hex:
avrdude: load data flash data from input file ./FHEM/firmware/SIGNALduino_nano328.hex:
avrdude: input file ./FHEM/firmware/SIGNALduino_nano328.hex auto detected as Intel Hex
avrdude: input file ./FHEM/firmware/SIGNALduino_nano328.hex contains 17738 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.45s

avrdude: verifying ...
avrdude: 17738 bytes of flash verified

avrdude done.  Thank you.

--- AVRDUDE ---------------------------------------------------------------------------------

sduino opened


Noch Ideen wo ich was weiter testen kann?
Gruß Flipper

Thorsten Pferdekaemper

Hi,
wenn Du fragen zu SignalDuino hast, dann verschiebst Du das vielleicht besser in den passenden Forenbereich.
Du hast aber auch noch einige andere Fehlermeldungen im Log, die Du Dir ansehen solltest...
Gruß,
   Thorsten
FUIP

Flipper92

Hallo Zusammen,

Da ich nun fast alle Verbindungen getestet habe (mir fehlt nur noch 868mhz) und auch bereits einige Verbesserungen habe (z.B. Entfeuchter, Übergangslicht, Nachtlicht, TV-off bei Abwesenheit) komme ich nun an den Punkt wo es kompliziert ist.

Nun soll aber auch der IST zustand mit einfieseln, also ob Fenster und Türen offen sind, ob Leute Anwesend sind oder im Urlaub, ob es Sommer oder Winter ist.

Es gibt nun (aus meiner sicht) zwei wege.
1. Alles Geräte direkt steuern und dementsprechende lange IF schleifen bauen.
    z.B. Wenn Zeit und Fenster zu und Tür zu und draußen Kalt dann Heizen
2. Über dummys
    z.B. Wohnzimmer.Heizen 0/1 und das Fenster stellt dieses Dummy um auf 0 wenn offen oder permanent auf 0 wenn Sommer.

Wie macht ihr das, vor allem im hinblick auf Erweiterungen?
Ich seh bei beiden das Problem, das man den Überblick verliert oder das z.B. das Fenster den Sommer überschreibt.

Ich hoffe meine Frage ist verständlich :-)
Gruß Flipper

Beta-User

Zitat von: Flipper92 am 29 März 2017, 11:38:49
Ich hoffe meine Frage ist verständlich :-)
Glaskugel:

M.E. denkt man bei FHEM besser ereignisorientiert statt zustandsorientiert. Also nicht "ist das Fenster offen", sondern "oh, das Fenster geht auf (oder zu)". Alternativ gibt es Zeitereignisse, klar. Ich mache daher am liebsten notifys, die auf Ereignisse reagieren (Temperatur wird gemeldet oder eine Fensteröffnung) und dann prüfen, was jetzt die richtige Reaktion ist (dann mit einem if).

Dummies sehe ich eigentlich nur noch für zentrale Informationen als sinnvoll an (nutze aber nur FHEMWEB). Hier würde ich einen Kalender für Sommer/Winterumstellung einrichten und dann ein notify darauf reagieren lassen, welches das Heiz-Notify (de-)aktiviert (disable 1 bzw. 0).

Man kann notifys auch nur tageszeitmäßig eingeschränkt laufen lassen mit einem entsprechenden attribut.

Hilft Dir das weiter?

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thorsten Pferdekaemper

Hi,
ich denke, dass das alles so ein bisschen Geschmacksache ist. Mach einer macht sowas mit großen DOIFs, der nächste mit einer Kombination aus notify, at und was sonst noch und wieder der nächste schreibt sich ein eigenes Modul dafür.
Speziell zur Heizung habe ich bei mir Komplexität rausgenommen, indem ich das ganze Jahr dasselbe Heizprogramm laufen habe. Wenn es kalt wird, dann ist mir egal, ob der Kalender Januar oder August zeigt. Die Thermostate machen ja von alleine zu, wenn es warm wird.
Gruß,
   Thorsten
FUIP

Beta-User

Agreed, es ist Geschmackssache...

Wenn ich den TE richtig verstanden habe, ging es ihm aber gerade darum herauszufinden, wer warum welche Lösung favorisiert ;).

Es sieht aber wenigstens danach aus, dass wir beide darin einig sind, dass tendenziell weniger mehr ist, man aber auf der anderen Seite immer im Auge haben sollte, welche konkreten Umstände zu berücksichtigen sind.

Z.B. ist meine Heizung/Therme dumm und weiß ohne manuellen Eingriff nicht, ob 15° Außentemperatur jetzt ein Anlaß sind, sich mal anzuwerfen. Ergo stelle ich das Ding um und dann kann ich auch alle HK-Thermostate auf Sommerbetrieb (manualMode/off) stellen und muß bei Fensteröffnung auch nichts mehr tun (ok, das ist jetzt Theorie, die sind direkt gepeert). Kommt halt darauf an...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Thorsten Pferdekaemper

Zitat von: Beta-User am 29 März 2017, 13:18:27
Es sieht aber wenigstens danach aus, dass wir beide darin einig sind, dass tendenziell weniger mehr ist, man aber auf der anderen Seite immer im Auge haben sollte, welche konkreten Umstände zu berücksichtigen sind.
Ja, so sehe ich das auch.

Zitat
Z.B. ist meine Heizung/Therme dumm und weiß ohne manuellen Eingriff nicht, ob 15° Außentemperatur jetzt ein Anlaß sind, sich mal anzuwerfen. Ergo stelle ich das Ding um und dann kann ich auch alle HK-Thermostate auf Sommerbetrieb (manualMode/off) stellen
Bei mir funktioniert das im Prinzip umgekehrt. Die Thermostate laufen immer gleich und in FHEM Werte ich die Ventilstellungen aus. Daraus wird eine Vorlauftemperatur berechnet, mit der dann der Heizkessel gesteuert wird. Also die Thermostate sagen dem System sozusagen, wann Sommer ist.
Gruß,
   Thorsten
FUIP