Seite 1 von 1

sendCommand auf einen Channel

Verfasst: 16. Okt 2020 21:14
von PSch
Moin,

unser neuer Roomba möchte gerne nach Hause telefoniert...das will ich aber nicht. Leider funktioniert dann der automatische Start nicht mehr, weil der scheinbar nur mit der Roomba-Cloud Anbindung geht. Aaaabbbbeeerrr Openhab könnte ihn ja steuern.

Funktioniert mit dem Binding openhab2.roomba auch ohne großen Aufwand. (https://github.com/Sonic-Amiga/openhab2 ... /README.md)

Binding ins richtige Verzeichnis kopiert, thing definiert

Code: Alles auswählen

irobot:roomba:roomba960 [ ipaddress="192.168.100.60", password=":1:1545347494:kjasdlkfasdf" ]
items angelegt

Code: Alles auswählen

String	RoombaCommand	 "Roomba Command [%s]"	<roomba>	{channel="irobot:roomba:roomba960:command"}
String	RoombaMission	"Roomba Mission [%s]"	<roomba>	{channel="irobot:roomba:roomba960:cycle"}
...
Number  RoombaSNR       "Roomba SNR [%d]"       <signal>      {channel="irobot:roomba:roomba960:snr"}
und über einen Eintrag in der Sitemap wie

Code: Alles auswählen

Switch label="Roomba Befehle" item=RoombaCommand
läßt sich der Robi auch ein und ausschalten etc (Clean, Spot, Dock, Pause, Stop).

Aber ich bekomme es nicht geregelt, ihn aus einer Rule zu starten. Vermutet hatte ich, das es mit

Code: Alles auswählen

RoombaCommand.sendCommand("Clean") 
funktioniert. Aber da passiert garnichts.

Ich denke, ich habe das System mit den Channel noch nicht verstanden; oder es funktioniert nicht. Kann mir jemand einen Tip geben, was ich vielleicht falsch mache?

Gruß
Peter

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 21:49
von PeterA
Mach mal Anführungszeichen bei Clean weg.

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 21:59
von PSch
Hi,

hatte ich schon, Ergebnis:

Code: Alles auswählen

 Rule 'Roomba_Start': The name 'Clean' cannot be resolved to an item or type; line 11, column 29, length 5
Trotzdem Danke

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 22:01
von PeterA
Poste doch mal bitte Deine ganze Rule.

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 22:12
von PSch
Hi,

die ist eigentlich trivial:

Code: Alles auswählen


rule "Roomba_Start"
when 
  Item VS_Roomba_clean changed from OFF to ON 
then 

  RoombaCommand.sendCommand(Clean)

end 
Gruß
Peter

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 22:33
von PeterA
In der Beschreibung des Bindings sind die Commands alle klein Geschrieben:

Code: Alles auswählen

Command to execute: clean, spot, dock, pause, stop

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 23:01
von PSch
Hi,

danke....Ich hatte mich durch die Darstellung in der Sitemap irritieren lassen. Da sind die Befehle mit erstem Buchstaben groß geschrieben... Alles groß hatte ich versucht, mit und ohne " aber nie alles klein....hinterher ist man immer schlauer.

Vielen Dank.

Gruß und schönes Wochenende
Peter

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 23:08
von PeterA
Prima! Freut mich das es nun funktioniert.

Eigentlich ist dafür keine Rule notwendig.
Du könntest die Befehle auch direkt über die Sitemap mit einem Switch Widget und Mappings senden.

Siehe zb hier:

viewtopic.php?f=8&t=2987

Das Mapping erzeugt Schaltflächen welche die Commands an das String item senden.
Bild

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 23:20
von PSch
Ja, dann könnte ich ihn per Sitemap einschalten...aber eigentlich soll er nur jede Nacht um 2:00 Uhr seine Runden drehen, außer, wenn wir Besuch haben. Dann klopft er nämlich immer ans Gästezimmer und die meisten unserer Gäse finden das doof:-)

Wenn die ganze Bude aber einen "Übernachtungsgast anwesend" Status hat, dann soll er nicht fahren. Und ich denke, das ist über eine Rule recht einfach lösbar.

Trotzdem werde ich mir das mit den mappings mal anschauen. (Auch) da fehlt mir noch ein wenig Verständnis. Und die Zeit, mich endlich mal tiefer einzuarbeiten.

Gruß
Peter

Re: sendCommand auf einen Channel

Verfasst: 16. Okt 2020 23:24
von PeterA
Das wird schon [emoji3].

Gruß Peter