Archiv pro štítek: OS X

IoT Cloud MQTT message to Speech

For demo purposes and to be able to check if the messages are coming from the IoT cloud without looking at the screen all the time I created super simple Node-RED flow that receives messages from IBM’s IoT cloud and log them in the debug tab of the Node-RED UI and in parallel it parses JSON format of the messages to obtain value of the „temp“ property which is then passed to OS X say command.

It can be easily modified to pick another property value just by modifying „JSON and parse“ node.

Screen Shot 2014-09-04 at 13.34.43

 

You can import the flow using „Import -> From Clipboard“ menu item of Node-RED and by pasting the following text and modify your broker details:

[{"id":"7649d216.89b62c","type":"mqtt-broker","broker":"kbrhh.messaging.internetofthings.ibmcloud.com","port":"1883","clientid":"a:kbrhh:viewer2"},{"id":"482fa4c4.b7d05c","type":"debug","name":"Show message","active":true,"console":"false","complete":"true","x":343,"y":62,"z":"948d5198.6b72b","wires":[]},{"id":"a07e3b0c.5f81c8","type":"mqtt in","name":"Receiver","topic":"iot-2/type/sensor-type/id/+/evt/event1/fmt/json","broker":"7649d216.89b62c","x":93,"y":129,"z":"948d5198.6b72b","wires":[["482fa4c4.b7d05c","e9a50fa3.165af"]]},{"id":"e9a50fa3.165af","type":"function","name":"JSONify and parse","func":"msg = JSON.parse(msg.payload)\ntemp = msg.d.temp\ntemp = Math.round(temp * 10)/10;\nreturn {\"payload\": \"Temerature is \" + temp + \" degrees of Celsius\" }","outputs":1,"x":344,"y":199,"z":"948d5198.6b72b","wires":[["4de9ed0c.b21614"]]},{"id":"4de9ed0c.b21614","type":"exec","command":"/usr/bin/say","append":"","useSpawn":"","name":"Say","x":578,"y":258,"z":"948d5198.6b72b","wires":[[],[],[]]}]

You can also change the voice by modifying say command from:

/usr/bin/say

to:

/usr/bin/say -v <voice name>

You can list available voices by entering command

/usr/bin/say -v ?

into terminal.

The flow requires Node-RED installed on a OS X machine.

Kopírování z PDF na Mac OS X a čeština

Nevím jestli to znáte také, ale při kopírování textu z PDF na OS X je  při vložení textu, například do Wordu, text nějaký divný. Třeba místo „ž“ je v textu evidentně písmeno „z“ a za ním UTF-8 znak pro přidaný háček. Podstata jevu je popsána zde.

Bohužel při tisku není umístění háčku nebo čárky vždy správné. Dost dlouho jsem znaky ručně opravoval, ale teď (ve vlaku s trochou času) jsem se rozhodl s tím něco udělat a na budoucí kopírování se připravit.

Jako nástroj pro opravu jsem nalezl v OS X přítomný prográmek iconv a rozhodl se jej využít pro tvorbu textového filtru do TextWrangler editoru, který používám (a který je zadarmo).

Stačí vytvořit ve složce ~/Library/Application Support/TextWrangler/Text Filters/ soubor UTF8Normalize.sh a do něj umístit text:

#!/bin/sh
iconv -f UTF-8-MAC -t UTF-8

Pak už jen zbývá souboru nastavit práva pro spouštění pomocí terminálu a příkazu:

chmod u+x UTF8Normalize.sh

spuštěného ve výše uvedeném adresáři a tím získat novou položku v menu editoru Text -> Apply filter -> UTF8Normalize . Filtr se aplikuje na text v okně editoru, který sice zdánlivě zůstane stejný, ale nyní už v UTF-8 NFC a výborně kopírovatelný třeba do Wordu.

Případně je možné příkaz užívat i k převodu textových souborů:

iconv -f UTF-8-MAC -t UTF-8 vstupniSoubor.txt >vystupniSoubor.txt